2017-03-24 4 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