我试图在一段时间后产生我的小行星。我通过制作一个计时器来做到这一点。
这是更新方法。
public void Update(GameTime theTime)
{
gameTime = theTime;
vPlayer.Y += velocity.Y;
float secs = (float)theTime.ElapsedGameTime.Seconds;
timeElapsed += secs;
secs = 1.5f;
if (timeElapsed == spawnAsteroid)
{
DrawAdsteroid();
timeElapsed = 0f;
}
if (Keyboard.GetState().IsKeyDown(Keys.Down))
{
velocity.Y = 5;
}
else if (Keyboard.GetState().IsKeyDown(Keys.Up))
{
velocity.Y = -5;
}
else
{
velocity.Y = 0;
}
if (vPlayer.Y > 630 )//+ Game1.tPlayer.Height)
vPlayer.Y = 630;
if (vPlayer.Y < -10) //+ Game1.tPlayer.Height)
vPlayer.Y = -10;
}
这是 DrawAsteroid 方法
public void DrawAdsteroid()
{
spriteBatch.Begin();
spriteBatch.Draw(Game1.tAsteroid, vAsteroid, Color.White);
spriteBatch.End();
}
这是正在定义的变量。
SpriteBatch spriteBatch;
GameTime gameTime;
Vector2 vPlayer = new Vector2(0, 720 / 2);
Vector2 vAsteroid;
Vector2 velocity;
Random rand = new Random();
float timeElapsed = 0f;
float spawnAsteroid = 1.5f;
发生的问题是小行星永远不会出现。我相信我的计时器无法正常工作,因为我进行了调试并且 if 语句不会执行。