C# Managed DirectX的Sprite绘图不显示咋办???

陈曦之光 2019-02-13 04:40:23
好吧。。。。。。
折腾了好几天终于有点成果了。。。。。。
我的要求也不高,只要能显示2d图像就行了。。。。
也会设置PresentParameters和Device了(最基础的)
第一次画的时候忘了每Render一遍就Clear一次,导致画的贴图出现了重影
于是便加了Clear........
但是这回绘制贴图的时候,不知道为什么总是画不出来
我心一横,立马for循环个100遍,这回倒是显示出来了,但是忽闪忽闪的
那就再狠点,1000遍!这回终于显示出来了,DX的效率优势也没了。。。。。。
咋办啊。。。。。
我原先是用TV3D的,因为认识的大神说引擎最重要的在于有人维护,还有社区,遇到问题能找到答案
TV3D这个引擎已经老的都快掉牙了,但是好歹底层也是DX啊。。。

这是初始化代码:
public void Init()
{
presentpaeameter=new PresentParameters();
presentpaeameter.Windowed=true;//显示模式,是窗口还是全屏
presentpaeameter.SwapEffect = SwapEffect.Discard;
device = new Device(0,DeviceType.Hardware,this,CreateFlags.MixedVertexProcessing,presentpaeameter);

tex = TextureLoader.FromFile(device, "C:\\Users\\xxpp321zz\\Desktop\\QQ图片20150503121043.jpg");

sprite = new Sprite(device);
rect = new Rectangle(0,0,400,200);
}
这是渲染代码:
public void Render()
{
while (this.Created)
{
try
{
device.Clear(ClearFlags.Target, Color.Black, 1f, 0);
device.BeginScene();
sprite.Begin(SpriteFlags.AlphaBlend);
for (int i = 0; i < 1000; i++)
{sprite.Draw2D(tex,Rectangle.Empty,rect,Cursor.Position,Color.Yellow);}
sprite.End();
device.EndScene();
device.Present();
Application.DoEvents();
}
catch (Direct3DXException e)
{
MessageBox.Show(Convert.ToString(e));
}
}
}

可以确定了图片没什么问题,去掉循环的话就什么也显示不出来了,循环了至少还能看见影子。。。。

好不容易下定决心要学DX(我用C#的),有没有大神能帮帮忙啊????
...全文
468 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
zgl7903 2019-02-14
  • 打赏
  • 举报
回复
下载 DirectX SDK, 看看里面的例子里有没有相关的

陈曦之光 2019-02-14
  • 打赏
  • 举报
回复
引用 4 楼 zgl7903 的回复:
下载 DirectX SDK, 看看里面的例子里有没有相关的
重新安装后,找了一下,的确有不少例子,但都是C++的
陈曦之光 2019-02-14
  • 打赏
  • 举报
回复
引用 4 楼 zgl7903 的回复:
下载 DirectX SDK, 看看里面的例子里有没有相关的
谢谢zgl7903的回复。之前安装sdk时,最后一个安装选项是默认不安装的
陈曦之光 2019-02-13
  • 打赏
  • 举报
回复
发现一个新问题,我开起调试的时候,有时候看的到图片,有时候就看不到图片,简直就是拼概率。。。。。。

但是随着我调试的时间推移,C盘的大小在快速减少,之前我没注意,一直到C盘只剩323M我在注意到

难道是我每次执行完都没释放内存???

之后我就在FormClosed函数里加了四条:
sprite.Dispose();
device.Dispose();
tex.Dispose();
presentpaeameter=null;

结果还是没有改变,而且C盘还是在缩水

有大神能解释一下吗???
陈曦之光 2019-02-13
  • 打赏
  • 举报
回复
引用 1 楼 zgl7903 的回复:
DirectDraw之C#入门攻略



DirectDraw早就合并到Direct3D里了,你说的其实我已经看过了,我真正想学的就是Direct3D里的2D调用
zgl7903 2019-02-13
  • 打赏
  • 举报
回复

19,469

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧