一定時間後に小惑星を生成しようとしています。私はタイマーを作ることによってこれを行います。
更新方法はこちら。
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 ステートメントが実行されなかったため、タイマーが機能していないと思います。