我正在尝试使用DrawUserPrimitives
在MonoGame中绘制绿色2D三角形,但我似乎无法使其正常工作。我尝试过的每一种方法都会导致模糊的错误或者没有任何方法。
这是我最近尝试绘制一个三角形,几乎完全取自我在互联网上找到的资源:
protected override void LoadContent()
{
_vertexPositionColors = new[]
{
new VertexPositionColor(new Vector3(0, 0, 1), Color.Green),
new VertexPositionColor(new Vector3(10, 0, 1), Color.Green),
new VertexPositionColor(new Vector3(10, 10, 1), Color.Green)
};
_basicEffect = new BasicEffect(GraphicsDevice);
_basicEffect.World = Matrix.CreateOrthographicOffCenter(
0, GraphicsDevice.Viewport.Width, GraphicsDevice.Viewport.Height, 0, 0, 1);
}
protected override void Draw(GameTime gameTime)
{
GraphicsDevice.Clear(Color.CornflowerBlue);
EffectTechnique effectTechnique = _basicEffect.Techniques[0];
EffectPassCollection effectPassCollection = effectTechnique.Passes;
foreach (EffectPass pass in effectPassCollection)
{
pass.Apply();
GraphicsDevice.DrawUserPrimitives(PrimitiveType.TriangleList,
_vertexPositionColors, 0, 1);
}
base.Draw(gameTime);
}
这会导致蓝色的空白屏幕没有任何三角形痕迹。