1
我試圖讓這個遊戲就像泡沫射擊遊戲, 我想退出遊戲時,所有的水果都被刪除,但我不知道怎麼做?! 我排序我的水果陣列,但無法找到我怎麼知道什麼時候所有的水果被刪除! 謝謝,謝謝!水果射手遊戲試圖結束
for (int k = 0; k < fruits.length; k++) {
for (int j = 0; j < fruits[k].length; j++) {
if (fruits[k][j] == null || fruits[19][19] == null) {
continue;
}
if (fruits[k][j].getLocationX() > fruits[19][19].getLocationX() + fruits[19][19].getWidth()
|| fruits[k][j].getLocationX() + fruits[k][j].getWidth() < fruits[19][19].getLocationX()
|| fruits[k][j].getLocationY() > fruits[19][19].getLocationY() + fruits[19][19].getWidth()
|| fruits[k][j].getLocationY() + fruits[k][j].getWidth() < fruits[19][19].getLocationY()) {
// No colloision
continue;
}
// Not counting each other
if (!(k == 19 && j == 19)) {
// Törmäys
fruits[19][19].setSpeedX(0);
fruits[19][19].setSpeedY(0);
// collision same fruits
if (fruits[k][j].getImage() == fruits[19][19].getImage()) {
removeFruits(k, j, fruits[19][19].getImage());
collision = true;
removeSeparate();
}
else if(isInBounds(k + 1, j) && fruits[k + 1][j] != null && fruits[k + 1][j].getImage() == fruits[19][19].getImage()){
removeFruits(k + 1, j, fruits[19][19].getImage());
collision = true;
removeSeparate();
}
else if(isInBounds(k - 1, j) && fruits[k - 1][j] != null && fruits[k - 1][j].getImage() == fruits[19][19].getImage()){
removeFruits(k - 1, j, fruits[19][19].getImage());
collision = true;
removeSeparate();
}
// // adding the fruits
else {
collisionX = k;
collisionY = j;
}
}
}
}
if (collision) {
fruits[19][19] = null;
}
else if (collisionX != -1 && collisionY != -1) {
fruits[collisionX][collisionY + 1] = fruits[19][19];
fruits[19][19] = null;
fruits[collisionX][collisionY + 1].setPosX(collisionX);
fruits[collisionX][collisionY + 1].setPosY(collisionY + 1);
fruits[collisionX][collisionY + 1].setLocationX(fruits[collisionX][collisionY].getLocationX());
fruits[collisionX][collisionY + 1].setLocationY(fruits[collisionX][collisionY].getLocationY()+fruits[collisionX][collisionY].getWidth());
}
if (fruits[19][19] != null && fruits[19][19].getLocationY() < 0) {
int x = fruits[19][19].getLocationX()/fruits[19][19].getWidth();
fruits[19][19].setLocationY(0);
fruits[19][19].setLocationX(x * fruits[19][19].getWidth());
fruits[19][19].setWidth(50);
fruits[19][19].setSpeedX(0);
fruits[19][19].setSpeedY(0);
fruits[x][0] = fruits[19][19];
fruits[x][0].setPosX(x);
fruits[x][0].setPosY(0);
fruits[19][19] = null;
if (isInBounds(x - 1 , 0) && fruits[x - 1][0] != null && fruits[x - 1][0].getImage() == fruits[x][0].getImage()) {
removeFruits(x - 1, 0, fruits[x][0].getImage());
}
if (isInBounds(x + 1 , 0) && fruits[x + 1][0] != null && fruits[x + 1][0].getImage() == fruits[x][0].getImage()) {
removeFruits(x + 1, 0, fruits[x][0].getImage());
}
}
}