スプライトをプレイヤーの近くに配置しようとすると問題が発生します。小さな地図と横スクロールがあります。成長と真ん中のプレーヤーだけがあります。彼は見て左または右に歩くことができ、プレイヤーが左を向いて「ショット」を押した場合、私はモブのリンクリストで私のプレイヤーに最も近いモブを検索し、このモブがダメージを受けるようにします。
私はこのコードを持っています: - 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();
}
}
申し訳ありませんが私の英語。