2012-04-14 2 views
0

자와 정수이므로전달 생성자

  • 새로운 좀비 변수 만들었다. 기본적으로

    public Zombie(int type) { 
    this.type = type; 
    x=200; 
    y=100; 
    dx=1; 
    paintA.setColor(Color.RED);} 
    

, 내가 유형으로 함께 게임 클래스는 새로운 좀비를 만들려면 :

private Zombie zombieA;
  • 좀비 변수는

    zombieA = new Zombie(1);
  • 가 좀비 클래스의

    통화 생성자

    초기화 1은 어떤 종류의 좀비를 만들지 결정하기 위해 스위치와 케이스를 통과합니다 (레벨 1 = 10). 초기 클래스에서

    zombieA = new Zombie(1); 
    

    및 오류에 :

    public Zombie(int type) { 
    

    좀비 클래스에서 나는 그것을 내 응용 프로그램 강제 폐쇄를 실행하고 난에 오류가 발생하는 경우 문제입니다. 나는 그걸 계속 반복 해왔고 나는 그 문제를 볼 수 없으며, 누군가는 틀린 것을 눈치 채고 있는가?

  • +3

    오류 무엇입니까? – Torious

    +4

    스택 추적을 게시하십시오 .. – barsju

    +0

    스택 추적? LogCat을 읽는 중입니다. java.lang.RuntimeException : Looper.prepare()를 호출하지 않은 스레드에서 처리기를 만들 수 없습니다. – Ali

    답변

    1

    그것은 스택 흔적도없이 얘기하기 어렵다, 그러나 나는 문제가이 줄 것으로 의심 : 당신은 UI 스레드에서이 작업을 수행해야합니다, 거기에 몇 가지 예는 여기에 있습니다

    paintA.setColor(Color.RED); 
    

    paintA이 제대로 초기화 되었습니까? 그것은 나에게 그것이 null이고 생성자에 NullPointerException이 발생하는 것 같습니다. 그렇다면 먼저 다음과 같이 인스턴스화해야합니다.

    paintA = new ... 
    
    +1

    우, 항상 작은 것들입니다. 덕분에 완벽하게 작동했습니다. 나는 paintA, paintB = new Paint()와 같이 설정하고, 생성자에서 초기화하도록 변경해야했다. 도움을 주셔서 감사합니다! – Ali

    0

    작업자 스레드 내에서 좀비 클래스를 호출하고 있습니까? Can't create handler inside thread that has not called Looper.prepare()

    +0

    UI 스레드 내에서 호출하는 것 같습니다. 스레드의 내 파악 잘하지만 약한 GamePanel 내부 클래스를 가진 게임 클래스를 가지고 표면 뷰를 확장하고 runnable을 구현하고 실행 메서드 내에서 좀비 클래스를 호출 해요 감사합니다. 그것을 변경하려고합니다. 다시 연락 드리겠습니다. – Ali

    +0

    "Looper.prepare()를 호출하지 않은 스레드 안에 처리기를 만들 수 없습니다." "UI 스레드에서 호출하지 않습니다. – Jens