Я пытаюсь создать свой астероид через определенное время. Я делаю это, делая таймер.
Вот метод обновления.
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 не выполнялся.
if(timeElapsed >= spawnAsteroid)
? - person MikeB   schedule 24.04.2013