我刚开始用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);
可以编辑它以获得“点击添加球”的效果吗?
答案 0 :(得分:3)
如果balls
被定义为List<BouncingBall>
类可以访问的Game
,则在MouseClick
事件中您可以使用balls.Add(new BouncingBall());
。因为您使用的是foreach
循环,所以它会增加每个循环的球数,而Draw
代码已经适应了添加的任何新balls
。
答案 1 :(得分:1)
在您的绘制方法中,您可以执行类似
的操作 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);
}