2017-10-22 12 views
0

ボールを画面の周りに動かす処理のメソッドを作成しようとしています。しかし、私はキーを押すとボールは動きませんが、理論ではそれはすべきです。私は間違って何をしていますか?オブジェクトを移動させるメソッドを作成する方法

float x = 100; 
float y = 100; 
void setup() { 
    size(400, 400); 
} 
void draw() { 
    fill(0); 
    ellipse(x, y, 10, 10); 
    move(); 
} 
void reset() { 
    x = height/2; 
    y = width/2; 
} 
void move() { 
    if (keyPressed == true) { 
    if (key == 'a') { 
     x = x - 3; 
    } else if (key == 's') { 
     y = y + 3; 
    } else if (key == 'd') { 
     x = x + 3; 
    } else if (key == 'w') { 
     y = y + 3; 
    } else if (key == ' ') { 
     reset(); 
    } 
    } 
} 
+0

座標を更新したら 'draw()'する必要がありますか? – mustaccio

+0

@mustaccio処理は自動的に 'draw()'関数を呼び出します。 –

+0

どうすればこの問題を解決できますか?最後に引き分けをしても助けにならなかった –

答えて

1

コードを実行すると、サークルの移動が表示されます。

まず、古いフレームを消去していないので、ボールを見るだけでなく、ボールの前のすべての場所にトレイルが表示されます。これを修正するには、フレームごとにbackground()関数を呼び出すことができます。

第2に、ユーザーがwsの両方のキーを押しても同じことをしています。だからボールはどちらの場合も落ちる。これを修正するには、wケースでロジックを変更します。

関連する問題