当我尝试将精灵定位在离我的播放器更近的地方时,我遇到了麻烦。我有一个小地图和侧卷轴。中间只有一个成长和一个球员。他可以向左或向右看和走,如果你的玩家向左看并且你按“射击”,我会在我的小怪链接列表中搜索我的玩家最接近的小怪,然后我让这个小怪接受伤害。
我有这个代码: - mobs 是我的小怪链表。(AnimatedSprite 的扩展)
这是我的第一个游戏,我不知道是否有更好的方法来做到这一点,这个不要搜索越近,只有我列表的第一个元素,有什么想法吗?:)
public void shot(){
float playerx = player.getX();
Mob target = mobs.element();
if(player.getDireccion()==Entidad.DIR_IZQUIERDA){//If direction if left
for(Mob z:mobs){
if(z.getX()<playerx &&
z.getX()>target.getX())
target= z;
}
}else if(player.getDireccion()==Entidad.DIR_DERECHA){//If direction is right
for(Mob z:mobs){
if(z.getX()>playerx && z.getX()<target.getX())
target= z;
}
}
target.recibeDaño();//receibe damaget (loss life basically)
if(objetivo.getVida()<=0){ //These delete body and sprite of the game
final Mob eliminar = target;
eliminarZombie(eliminar,this);
mobs.remove(target);
System.gc();
}
}
对不起我的英语。