前提・実現したいこと
prcessingで簡単なホッケーゲームを作成しています。
barとballの当たり判定をif文で作成したのですが、
当たり判定ができていません
発生している問題・エラーメッセージ
エラーメッセージはありません
該当のソースコード
processing
1float x_speed=5.0 ,y_speed=5.0 ,bar_speed=5.0; 2float Lbar_x=70, Lbar_y=250; 3float Rbar_x=730, Rbar_y=250; 4float ball_x=400, ball_y=250, ball_r=30; 5boolean w,s,up,down; 6 7void setup(){ 8 size(800,500); 9} 10 11void keyPressed() {//キーを押した時 12 if (key == 'w') w = true; 13 if (key == 's') s = true; 14 if (keyCode == UP) up = true; 15 if (keyCode == DOWN) down = true; 16} 17 18void keyReleased() {//キー離した時 19 if (key == 'w') w = false; 20 if (key == 's') s = false; 21 if (keyCode == UP) up = false; 22 if (keyCode == DOWN) down = false; 23} 24 25void draw(){ 26 background(112); 27 Lbar(); 28 Rbar(); 29 ball(); 30} 31 32void Lbar(){ 33 fill(255,0,0); 34 rectMode(CENTER); 35 if (w) {//上に移動 36 Lbar_y -= bar_speed; 37 } 38 if (s) {//下に移動 39 Lbar_y += bar_speed; 40 } 41 if(Lbar_y<40){//上部barのstop 42 Lbar_y=40; 43 } 44 if(Lbar_y>460){//下部barのstop 45 Lbar_y=460; 46 } 47 rect(Lbar_x,Lbar_y,20,80); 48} 49 50void Rbar(){ 51 fill(0,0,255); 52 rectMode(CENTER); 53 if (up) {//上に移動 54 Rbar_y -= bar_speed; 55 } 56 if (down) {//下に移動 57 Rbar_y += bar_speed; 58 } 59 if(Rbar_y<40){//上部barのstop 60 Rbar_y=40; 61 } 62 if(Rbar_y>460){//下部barのstop 63 Rbar_y=460; 64 } 65 rect(Rbar_x,Rbar_y,20,80); 66} 67 68void ball(){ 69 fill(255); 70 ellipse(ball_x,ball_y,ball_r,ball_r); 71 ball_x+=x_speed; 72 ball_y+=y_speed; 73 if(ball_x>width-ball_r/2||ball_x<ball_r/2){//壁の跳ね返り 74 x_speed=-x_speed; 75 } 76 if(ball_y>height-ball_r/2||ball_y<ball_r/2){ 77 y_speed=-y_speed; 78 } 79 //barとの当たり判定 80 if(ball_x/2==730){ 81 if(Rbar_y<=ball_y){ 82 if(ball_y<=Rbar_y+80){ 83 x_speed=-x_speed; 84 y_speed=-y_speed; 85 } 86 } 87 } 88}
試したこと
//barとの当たり判定という所が該当箇所です。
条件式を見直しましたが、間違えていないと思います。
補足情報(FW/ツールのバージョンなど)
windows10 processing3.5.4
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/12/19 05:54