Ive следил за онлайн-учебным пособием для игры с шутер-сверху, но тут незавершенный (и я не вижу, чтобы создатель продолжал его), поэтому мне нравится делать это самостоятельно. До сих пор учебное пособие помогло мне дать игроку здоровье и строку над ним, чтобы показать, сколько здоровья, но ничего не происходит, когда здоровье доходит и опускается ниже 0. Оно просто уменьшается в инкремент, который я установил. Id, как игра, чтобы закрыть, когда нет больше здоровья, так как я буду делать это?Как удалить объект, когда «здоровье <= 0»?
Это то, что происходит, когда игрок получает удар по вражеской пулей:
private void playerBulletCollision(){
for (Bullet b:mobBullets){
if (b.collisionBox.intersects(player.collisionBox)){
player.health -= b.damage;
b.isAlive = false;
break;
}
}
}
И это то, что происходит, когда игрок пуля врага
private void mobBulletCollision(){
for (Bullet b:bullets){
for (Entity m: mobs){
if (b.collisionBox.intersects(m.collisionBox)){
m.health -= b.damage;
b.isAlive = false;
break;
}
}
}
}
так, как я могу сделать это так игра заканчивается, когда здоровье игрока больше нет? Извините, если мое объяснение не ясно или код, который я показал, недостаточно или не имеет значения. Скажите мне, и я исправлю это в меру своих способностей.
Спасибо
Изменить: Я пытался сделать это так, он проверяет, если здоровье < = 0, и если он делает это despawns:
private void playerBulletCollision(){
for (MobBullet b:mobBullets){
if (b.collisionBox.intersects(player.collisionBox)){
player.health -= b.damage;
b.isAlive = false;
break;
}
if(player.health <=0)
player.isAlive = false;
}
}
Он не работал.
Редактировать 2: Это процесс удаления мертвых врагов. Я думаю, потому что для игрока нет такой вещи, player.health = false; ничего не делает.
private void removeDead(){
for (int i = 0; i <bullets.size(); i++){
if (bullets.get(i).isAlive == false)
bullets.remove(i);
}
for (int i = 0; i <mobs.size(); i++){
if (mobs.get(i).isAlive == false)
mobs.remove(i);
}
for (int i = 0; i <mobBullets.size(); i++){
if (mobBullets.get(i).isAlive == false)
mobBullets.remove(i);
}
bullets.trimToSize();
mobs.trimToSize();
mobBullets.trimToSize();
}
Каким образом эта деталь должна быть изменена для включения проигрывателя?
Каждой коллизии вы должны проверить, если 'health' меньше или равно 0, то, если так что в итоге игра – Sybren
Пробовала, что ничего не происходит. –
, пожалуйста, покажите код того, что вы пробовали – Sybren