2013-08-23 2 views
-2

누군가 도움이된다면 방황하고 있습니다. 기본적으로 일부 입력 핸들링에 대한 계기를 따르고 자습서에서는 새로운 클래스를 작성하고이 코드를 작성하도록 권장합니다.toggleKey (int, boolean) 메소드가 InputHandler 유형에 대해 정의되지 않았습니다.

package net.pinkeye.JavaGame; 

import java.awt.event.KeyEvent; 
import java.awt.event.KeyListener; 
import java.util.ArrayList; 
import java.util.List; 

public class InputHandler implements KeyListener{ 

public InputHandler(Game game) { 
    game.addKeyListener(this); 
} 

public class Key { 
    public boolean pressed = false; 

    public boolean isPressed(){ 
     return pressed; 
    } 
    public void toggle(boolean isPressed) { 
     pressed = isPressed; 
    } 
} 


public Key up = new Key(); 
public Key down = new Key();  
public Key left = new Key();  
public Key right = new Key(); 

public void keyPressed(KeyEvent e) { 
    toggleKey(e.getKeyCode(),true); 
} 


public void keyReleased(KeyEvent e) { 
    toggleKey(e.getKeyCode(),false); 
} 

public void keyTyped(KeyEvent e) { 
} 


public void toggle (int keyCode, boolean isPressed) { 
    if(keyCode == KeyEvent.VK_W){ 
     up.toggle(isPressed); 
    } 
    if(keyCode == KeyEvent.VK_S){ 
     down.toggle(isPressed); 
    } 
    if(keyCode == KeyEvent.VK_A){ 
     left.toggle(isPressed); 
    } 
    if(keyCode == KeyEvent.VK_D){ 
     right.toggle(isPressed); 
    } 
} 

} 

그러나 그것은

public void keyPressed(KeyEvent e) { 
    toggleKey(e.getKeyCode(),true); 
} 


public void keyReleased(KeyEvent e) { 
    toggleKey(e.getKeyCode(),false); 
} 

일식이 나에게

필자 WRD이 튜토리얼 말씀을 따라 여러 번 확인하는 방법의 toggleKey (INT, 부울) 유형 InputHandler에 대한 정의되지 말한다 말한다 곳 그러나 나는 나의 실수를 발견 할 수 없다.

어떤 도움을

Btw은 여기에 위대한이 도움이된다면 thwe tuorial입니다 것입니다 : http://www.youtube.com/watch?v=Vv7G5GMOre8

+1

그래서 이것을 바로 잡아 보자. 아무 곳이나 선언하지 않은 toggleKey (...) 메소드를 호출하면 코드가 컴파일되지 않을 때 놀랄 것이다. 나는 당신이 놀란 이유에 대해 주로 놀랐습니다. 이것에 대해 당신에게 혼란스러운 것은 무엇입니까? 왜 수업 중에 실제로 가지고있는 메서드를 호출하지 않겠습니까? –

+0

그래, 나도 알아하지만이 자습서 그것을 선언하지 ?? – user2687097

+1

상관 없어요. 귀하의 코드는 논리적으로 합리적이지 않습니다. 맹목적으로 자습서를 따르지 마십시오. 당신의 두뇌와 상식을 사용하십시오. –

답변

3

귀하의 실제 방법은 toggle라고하지만 toggleKey를 호출의 가능성을 선언했습니다. toggle에서 toggleKey으로 이름을 변경하면 문제가 해결됩니다.

+0

죄송합니다. 작동하지 않습니다./ – user2687097

+0

작동합니다. 오류가 너무 분명하고 데릭이 옳다. 'Key'클래스의 'toggle'메소드는 그대로 두어야합니다. 그러나 'public void toggle (int keyCode, boolean isPressed)'기호를 'public void toggleKey (int keyCode, boolean isPressed)'기호로 '토글'메소드의 이름을 변경하십시오. – SerotoninChase

+0

그래, 나는 그 사람이 토글을 타이프 한 것을 깨달았다. 나중에 단어를 바꾸지 않고 키를 토글했다. 어쨌든 – user2687097

관련 문제