前提・実現したいこと
procesingでブロック崩しを作っており、現在ボールと打ち返すラケットの当たり判定を実装しようとしています。
発生している問題・エラーメッセージ
跳ね返らない
該当のソースコード
processing
1 2 3 4Bar B; 5Ball b; 6 7void setup(){ 8 size(900,800); 9 b = new Ball(); 10 B = new Bar(); 11 12 13} 14 15void draw(){ 16 background(200,200,200); 17 b.show(); 18 B.show(); 19 b.update(); 20 if ((b.x> B.x && b.x< B.x + 90) &&( b.y <B.y && b.y>B.y + 30)){ 21 b.vx=-b.vx; 22 b.vy=-b.vy; 23 24} 25 26} 27 28class Ball{ 29 int x,y; 30 int vx,vy; 31 32Ball(){ 33 x=450; 34 y=760; 35 vx=5; 36 vy=-5; 37} 38 39void show(){ 40 ellipse(x,y,40,40); 41} 42 43void update(){ 44 x+=vx; 45 y+=vy; 46 if ( y<0){ 47 boundY(); 48 } 49 if ( x >width-40|| x<0){ 50 boundX(); 51 } 52} 53void boundX() { 54 vx = -vx; 55 } 56void boundY() { 57 vy = -vy; 58 } 59 60} 61class Bar{ 62 int x,y; 63Bar(){ 64 x=mouseX; 65 y=770; 66} 67 68void show(){ 69 rect(mouseX,y,90,30); 70} 71 72}
試したこと
if文を調節しても出来なかったためRectangleクラスを用いて重なりの判定にしようかと思ったのですが少し厳しかったため、なるべくクラスを増やさない方向で改善したいです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。