プロが教えるわが家の防犯対策術!

int x, y, dx, dy;

void setup() {
size( 500, 500 );
x = width / 2; y = height / 10;
dx = 0; dy = 0;
}

void draw() {
background( 255 );
noStroke();
fill( 111, 183, 255 );
ellipse( x, y, 50, 50 );
x += dx; y += dy;
if( x <= 25 || x >= width -25 ) dx = -dx;
if( y <= 25 || y >= height - 25 ) dy = -dy;
}

void mousePressed() {
switch( mouseButton ) {
case LEFT:
dy = 3;
break;
}
}
void keyPressed() {
switch( key ) {
case 'a': dy = 10; break; //左にずれる
//Aが押され、ボールが下まで行ったら停止する
}
}
void keyReleased() {
switch( key ) {
case 'a': case 'd': dx = 0; break;

}
}

以上のコードを実行すると、下まで行ってボールが跳ね返ってしまいます。
下まで行ったら、永遠と球が跳ね返るのではなく、動きを止めたいです。
分からなくなって困っています。

A 回答 (1件)

void draw() {


 background( 255 );
 noStroke();
 fill( 111, 183, 255 );
 ellipse( x, y, 50, 50 );
 x += dx;
 if ( x <= 25 || x >= width -25 ) dx = -dx;
 if ( y <= 25 || y >= height - 25 ) {
  y = y;
 } else {
  y += dy;
 }
}
    • good
    • 2

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!