내 KeyPressed가 Java에서 작동하지 않습니다.

킹 블루

나는 내 자신의 즐거움을 위해 자바로 게임을 만들고 있는데 이동 키를 눌렀을 때 화면에서 사각형을 선택하면 움직이지 않습니다. 여기 내 첫 수업

package Game;
import java.awt.*;
import javax.swing.*;
import Game.Player;

public class Frame {

    public static void main(String[] args) {
        JFrame f = new JFrame();
        Player pl = new Player();

        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.setResizable(false);
        f.setSize(600, 600);
        f.setTitle("Filler");
        f.add(pl);

        f.setVisible(true);

    }

}

그리고 나의 두 번째 수업

package Game;

import java.awt.*;
import java.awt.event.*;


import javax.swing.*;

public class Player extends JPanel implements ActionListener, KeyListener {

    Timer t = new Timer(5,this);
    double x = 0, y = 0, velx = 0, vely = 0;

    public Player(){
        t.start();
        addKeyListener(this);
        setFocusable(true);
        setFocusTraversalKeysEnabled(false);
    }

    public void paintComponent (Graphics g) {
        super.paintComponent(g);
        Graphics2D g2 = (Graphics2D) g;
        g2.setColor(Color.RED);
        g2.fillRect(40, 40, 20, 30);
    }
    @Override
    public void keyReleased(KeyEvent e) {
        velx = 0;
        vely = 0;

    }
    @Override
    public void keyTyped(KeyEvent e) {

    }
    @Override
    public void actionPerformed(ActionEvent e) {
        x += velx;
        y += vely;
        repaint();

    }



    @Override
    public void keyPressed(KeyEvent e) {

        if(e.getKeyCode() == KeyEvent.VK_D){
            velx = 1.5;
            vely = 0;
        }
        else if(e.getKeyCode() == KeyEvent.VK_A){
            velx = -1.5;
            vely = 0;
        }
        else if(e.getKeyCode() == KeyEvent.VK_W){
            vely = -1.5;
            velx = 0;
        }


    }

}

나는 나중에 더 많은 수업을 추가 할 것이지만 이것이 내가 지금 가지고있는 것입니다. 누군가 나를 도울 수 있습니까?

아서

이것은 함께 할 수 없다 KeyListener, 당신이 상관없이 무엇의 사각형을 그릴 있다는 사실 xy입니다. 당신은 변수를 사용하여 사각형의 x와 y 값을 교체하는 경우 xy그것을 잘 작동합니다.

public void paintComponent (Graphics g) {
    super.paintComponent(g);
    Graphics2D g2 = (Graphics2D) g;
    g2.setColor(Color.RED);
    g2.fillRect((int)x, (int)y, 20, 30); // change line here
}

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

내 활동에서 notifyDataSetChanged가 작동하지 않습니다.

분류에서Dev

내 html 문서에서 JavaScript가 작동하지 않습니다.

분류에서Dev

내 변수에서 찾기가 작동하지 않습니다.

분류에서Dev

R Shiny downloadHandler가 flexdashboard 내에서 작동하지 않습니다.

분류에서Dev

addEventListener가 함수 내에서 작동하지 않습니다.

분류에서Dev

Timer onReceive가 NavigationView 내에서 작동하지 않습니다.

분류에서Dev

gcloud auth가 dockerfile 내에서 작동하지 않습니다.

분류에서Dev

@Repository 내에서 SpringBoot @Autowire가 작동하지 않습니다.

분류에서Dev

현실 내에서 orderBy DESC가 작동하지 않습니다.

분류에서Dev

onChange 함수 내에서 setState가 작동하지 않습니다.

분류에서Dev

내 Centos 7.3에서 sudo가 작동하지 않습니다.

분류에서Dev

내 변수에서 찾기가 작동하지 않습니다.

분류에서Dev

mod_rewrite가 내 URL에서 작동하지 않습니다.

분류에서Dev

루프가`onreadystatechange` 내에서 작동하지 않습니다.

분류에서Dev

TextView ellipsize가 RelativeLayout 내에서 작동하지 않습니다.

분류에서Dev

$ scope가 내 angularjs 앱에서 작동하지 않습니다.

분류에서Dev

serialize ()가 내 양식에서 작동하지 않습니다.

분류에서Dev

$ 및 내부 $ elemMatch가 Meteor에서 작동하지 않습니다.

분류에서Dev

내 JavaScript가 크롬에서 작동하지 않습니다.

분류에서Dev

Linked in Share가 내 앱에서 작동하지 않습니다.

분류에서Dev

내 MATLAB에서 GPUmat가 작동하지 않습니다.

분류에서Dev

Javascript API가 함수 내에서 작동하지 않습니다.

분류에서Dev

내 VS2013에서 jquery가 작동하지 않습니다.

분류에서Dev

.html 내부 .append가 jquery에서 작동하지 않습니다.

분류에서Dev

내 LinkedList 구조가 C에서 작동하지 않습니다.

분류에서Dev

내 RecyclerView에서 의도가 작동하지 않습니다.

분류에서Dev

jquery datepicker가 <h : form> 내에서 작동하지 않습니다.

분류에서Dev

Nginx가 내 VPS에서 작동하지 않습니다.

분류에서Dev

내보기에서 ScrollView가 작동하지 않습니다.

Related 관련 기사

  1. 1

    내 활동에서 notifyDataSetChanged가 작동하지 않습니다.

  2. 2

    내 html 문서에서 JavaScript가 작동하지 않습니다.

  3. 3

    내 변수에서 찾기가 작동하지 않습니다.

  4. 4

    R Shiny downloadHandler가 flexdashboard 내에서 작동하지 않습니다.

  5. 5

    addEventListener가 함수 내에서 작동하지 않습니다.

  6. 6

    Timer onReceive가 NavigationView 내에서 작동하지 않습니다.

  7. 7

    gcloud auth가 dockerfile 내에서 작동하지 않습니다.

  8. 8

    @Repository 내에서 SpringBoot @Autowire가 작동하지 않습니다.

  9. 9

    현실 내에서 orderBy DESC가 작동하지 않습니다.

  10. 10

    onChange 함수 내에서 setState가 작동하지 않습니다.

  11. 11

    내 Centos 7.3에서 sudo가 작동하지 않습니다.

  12. 12

    내 변수에서 찾기가 작동하지 않습니다.

  13. 13

    mod_rewrite가 내 URL에서 작동하지 않습니다.

  14. 14

    루프가`onreadystatechange` 내에서 작동하지 않습니다.

  15. 15

    TextView ellipsize가 RelativeLayout 내에서 작동하지 않습니다.

  16. 16

    $ scope가 내 angularjs 앱에서 작동하지 않습니다.

  17. 17

    serialize ()가 내 양식에서 작동하지 않습니다.

  18. 18

    $ 및 내부 $ elemMatch가 Meteor에서 작동하지 않습니다.

  19. 19

    내 JavaScript가 크롬에서 작동하지 않습니다.

  20. 20

    Linked in Share가 내 앱에서 작동하지 않습니다.

  21. 21

    내 MATLAB에서 GPUmat가 작동하지 않습니다.

  22. 22

    Javascript API가 함수 내에서 작동하지 않습니다.

  23. 23

    내 VS2013에서 jquery가 작동하지 않습니다.

  24. 24

    .html 내부 .append가 jquery에서 작동하지 않습니다.

  25. 25

    내 LinkedList 구조가 C에서 작동하지 않습니다.

  26. 26

    내 RecyclerView에서 의도가 작동하지 않습니다.

  27. 27

    jquery datepicker가 <h : form> 내에서 작동하지 않습니다.

  28. 28

    Nginx가 내 VPS에서 작동하지 않습니다.

  29. 29

    내보기에서 ScrollView가 작동하지 않습니다.

뜨겁다태그

보관