XNAは、関連します1(前進、上)、2(後退、上)、3(前進、下降)、4(後退、下降)移動します。ボールは、それが唯一のラウンドのbegginingで方向だ得ることができるようにゲームは、現時点で演奏されている場合 XNAボールの動き
は私のコードでは、私はチェックしています。 (プレイヤーが勝つか死ぬ場合は、isRoundPlayinはfalseに設定されており、ボールがランダムな方向(1、2、3を取得する場合、または4)それがtrueに設定されていますbool isRoundPlayin = false; // this is at the top of my Game1.cs
//...
//...
//...
// This is an Update method in Game1.cs:
protected override void Update(GameTime gameTime)
{
if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed)
this.Exit();
if (isRoundPlayin == false)
{
BallMove();
isRoundPlayin = true;
}
base.Update(gameTime);
}
//...
//...
//...
// This is BallMove method at the end of Game1.cs script:
public void BallMove()
{
Random randy = new Random();
int randMov = randy.Next(1, 4);
int ball_velocity = 3;
{
if (randMov == 1)
{
ballRect.X += ball_velocity;
ballRect.Y += ball_velocity;
}
else if (randMov == 2)
{
ballRect.X += ball_velocity;
ballRect.Y -= ball_velocity;
}
else if (randMov == 3)
{
ballRect.X -= ball_velocity;
ballRect.Y += ball_velocity;
}
else if (randMov == 4)
{
ballRect.X -= ball_velocity;
ballRect.Y -= ball_velocity;
}
}
}
をそして、まだ私のボールが移動するdoesntの。:あなたがラウンド移動した後、真右に再生されている設定しているので、/私はあなたがラウンドをするときに終了する理由はわからない。したがって、それは1つのフレームが再び更新したことがない移動します。右のスポーンポイント
ブレークポイントを追加してコードをステップ実行しようとしましたか?最初に、 'ballRect'オブジェクトとそのプロパティだけでなく、' isRoundPlayin'フィールドの状態を判断するために、行単位でコードをステップ実行してみます。おそらくあなたの 'X'と' Y'プロパティは更新されていますが、座標が設定された後に 'ballRect'でメソッドや関数などを呼び出す必要がありますか? – gmiley