单击鼠标添加2D Sprite

时间:2011-05-18 16:01:13

标签: c# xna 2d

我刚开始用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);

可以编辑它以获得“点击添加球”的效果吗?

2 个答案:

答案 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);
    }