【发布时间】:2020-08-25 00:09:06
【问题描述】:
我尝试在 github 上遵循他们的示例,我只想画一条线。但是当窗口打开时,只有一个黑屏。我不知道我做错了什么。
这是我的源代码。 感谢您的帮助!
static void Main()
{
var form = new RenderForm("Test");
int width = form.ClientSize.Width;
int height = form.ClientSize.Height;
var device = new Device(new Direct3D(), 0, DeviceType.Hardware, form.Handle, CreateFlags.HardwareVertexProcessing, new PresentParameters(width, height) { PresentationInterval = PresentInterval.One });
Line line = new Line(device);
RawVector2[] vertices =
{
new RawVector2(10, 10),
new RawVector2(10, 10)
};
RenderLoop.Run(form, () =>
{
device.Clear(ClearFlags.Target, new RawColorBGRA(0, 0, 0, 1), 1.0f, 0);
device.BeginScene();
line.Width = 10;
line.GLLines = true;
line.Antialias = false;
line.Draw(vertices, new RawColorBGRA(254, 254, 254, 1));
device.EndScene();
device.Present();
});
}
【问题讨论】:
-
您是否尝试将第二行顶点坐标更改为不同于 (10,10) 的坐标?
-
是的,我试过了,但没有任何改变
-
我没有使用 SharpDX,主要是使用 SlimDX,但我认为您需要在尝试显示任何内容之前为您的场景设置一个投影矩阵。正交投影可用于显示二维对象。
-
我是电子游戏开发的新手,我不知道该怎么做!
-
最后的参考资料还展示了如何使用 device.SetTransform 方法设置正交投影。