前提・実現したいこと
ここに質問の内容を詳しく書いてください。
(例)Processingでブロック崩しを作成しています。
ボールがブロックに当たったとき、ブロックだけでなく、ボールの方も消したいです。どのように考えればいいかが分かりません。
よろしくお願いします。
int blw = 38; //ブロックの幅 int blh = 38; //ブロックの高さ int blf [] = new int[81]; float bx = 310; //ボールの位置 float by = 790; //ボールの位置 float dy = 2; //ボールの速さ void setup(){ size(630,800); background(183, 186, 107); gameInit(); } void draw(){ by -= dy; background(183, 186, 107); rect(bx, by, 10, 10); block_display(); } void mouseClicked(){ bx = 310; //ボールの位置 by = 790; } void keyPressed() { if (keyCode == LEFT) { bx -= 10; } else if (keyCode == RIGHT) { bx +=10; } } void gameInit(){ for(int i = 0; i < 81; i++){ blf[i] = 1; } } void block_display(){ int block_w, block_h; for (int i = 0; i < 81; i++){ //ブロックを表示 if(blf[i] == 1){ // 0 : ブロック非表示 1 : 表示 fill(197,149,107); //茶色 block_w = 130 + (i%9) * (blw+2); block_h = 70 + (i/9) * (blh+2); blockHitCheck(i, block_w, block_h); if( blf[i] == 1){ rect(block_w, block_h, blw, blh, 2); } } } } void blockHitCheck(int ii, int xx, int yy){ if( ! ((xx < bx) && (xx + blw > bx) && (yy < by) && (yy + blh > by)) ){ return; } blf[ii] = 0; // 0 : ブロックなし }
試したこと
draw()の中で、条件分岐してみましたが、うまくいきませんでした。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/05/28 23:52