2017-03-24 3 views
1

私はAndoidを初めて使っています。私は単純なスネークゲームを持っています。 そして、蛇が死んで食べると、私は毒中のリンゴ(画面上のランダムな場所で生成されるもの)を持っています。毒蛇のスネークゲームのdie()メソッド

提案がありますか?

マイPoisonedFoodクラス:

public abstract class PoisonedFood { 
    public abstract float getX(); 

    public abstract float getY(); 

    public abstract void eatPoison(); 

    public abstract void render(GL10 gl); 

} 

マイSFoodクラス:

public class SFood extends PoisonedFood { 
    public static final float RADIUS = .07f; 

    private float x, y, angle, speed; 

    public SFood(float x, float y) { 
     super(); 
     this.x = x; 
     this.y = y; 
    } 

    public void render(GL10 gl) { 
     Image.setRotation((System.currentTimeMillis()/6) % 360); 
     Image.setScale(RADIUS, RADIUS); 
     SGame.fImage.draw(gl, x, y); 
    } 

    public void update() { 

    } 

    public float getX() { 
     return x; 
    } 

    public float getY() { 
     return y; 
    } 


    public void eatPoison() { 
     //The method 
    } 
} 
+0

ここには本当の質問はありません。あなたが知りたいのは何ですか? – msal

+2

あなたのアプリについて何も知らない無作為の人々は、より良いアイデアを持っていると思いますか? –

答えて

3

EMM私はは食べ物を食べる必要があり、ない食べ物は何かを食べる必要がありますね。確かに

public class Snake() { 
    public void eatFood(SFood food) { 
    //check if food is poisoned 
    if (food instanceof PoisonedFood) { 
     this.die(); 
    } 

    //or if you are hater of instanceof or you have isPoisoned() method 
    if (food.isPoisoned()) { 
     this.die(); 
    } 
    } 

    public void die() { 
     //snake dies here 
    } 
} 

そしてsnake.eatFood()食品や蛇の衝突イベントで実行する必要があります。

+2

私はおそらく、SFoodに 'isPoisonous'メソッドを持たせるでしょう。 –

+0

@ cricket_007は同じことを言っていたという新しいクラスの必要性はないようです。ほとんどの場合、instanceofチェックは不良設計を示しました。 – Cruncher

+0

@ cricket_007が更新されました。ちょうどisPoisoned()メソッドを参照していないので、最短オプションをアドバイスしました。 – DEADMC

関連する問題