私はWindowsPhone7でArkanoid(Breakout)ゲームを開発しています。
GamePageコンストラクターのベースにハンドラーを追加しました。
public GamePage()
{
InitializeComponent();
// Get the content manager from the application
contentManager = (Application.Current as App).Content;
// Create a timer for this page
timer = new GameTimer();
timer.UpdateInterval = TimeSpan.FromTicks(333333);
timer.Update += OnUpdate;
timer.Draw += OnDraw;
base.OnMouseMove += new MouseEventHandler(GamePage_MouseMove);
init();
}
そしてこれは処理機能です:
private void GamePage_MouseMove(object sender, MouseEventArgs e)
{
//this changes the ball coordinates based on yVel and xVel properties of the ball
ball.moveBall();
}
GamePage_MouseMove関数が呼び出されることはなく、その理由はわかりません。ボールが動いていない。
もう1つの問題は、onUpdate関数です。
private void OnUpdate(object sender, GameTimerEventArgs e)
{
//if the ball rectangle intersects with the paddle rectange, change the ball yVel
if (ball.BallRec.Intersects(paddle.PaddleRec))
ball.YVel = -1;
ball.moveBall();
}
ボールがパドルと交差しても、元の方向に移動し続け、「バウンド」しません。
助けてください。
アップデート
小さな変更の後、onUpdate関数は次のようになります。
private void OnUpdate(object sender, GameTimerEventArgs e)
{
MouseState ms = Mouse.GetState();
if(ms.LeftButton == ButtonState.Pressed)
paddle.movePaddle((int)ms.X);
}
しかし、パドルは動いていません。