通过鼠标单击添加 2D 精灵
本文关键字:2D 精灵 添加 单击 鼠标 | 更新日期: 2023-09-27 17:57:06
我刚刚开始用C#/XNA编码我在 XNA 中制作了一个非常简单的小程序,它是一个绘制的矩形,里面有 3 个随机生成的球,球是在它们自己的类中定义的,我一直在遵循本教程http://www.bluerosegames.com/brg/xna101.aspx
球是使用
int ballCount = 3;
我想做的是使鼠标单击将 int 增加 1,向屏幕添加另一个球
我的代码看起来像这样,但我不确定它是否正确/可能
mouseStateCurrent = Mouse.GetState();
if (mouseStateCurrent.LeftButton == ButtonState.Pressed &&
mouseStatePrevious.LeftButton == ButtonState.Released)
{
ballCount = ballCount+1;
}
mouseStatePrevious = mouseStateCurrent;
任何帮助建议都会有所帮助:)
我正在使用代码来绘制看起来像这样的球
spriteBatch.Begin();
spriteBatch.Draw(debugColor, TextBox, Color.White);
spriteBatch.Draw(background, backgroundRectangle, Color.White);
foreach (BouncingBall ball in balls)
{
ball.Draw(spriteBatch);
}
spriteBatch.End();
base.Draw(gameTime);
是否可以对其进行编辑以获得"单击以添加球"效果?
如果balls
定义为Game
类可以访问的List<BouncingBall>
,则在MouseClick
事件中可以使用balls.Add(new BouncingBall());
. 因为您使用的是foreach
循环,所以它将增加每个循环的球数,并且您的Draw
代码已经可以满足添加的任何新balls
。
在你的 draw 方法中,你可以做类似的事情
protected override void Draw(GameTime gameTime)
{
GraphicsDevice.Clear(Color.CornflowerBlue);
spriteBatch.Begin();
for(var i=0;i<ballcount;i++)
{
spriteBatch.Draw()
}
spriteBatch.End();
base.Draw(gameTime);
}