为什么我的KeyPressed方法不会运行

时间:2016-12-02 18:13:33

标签: java

我正在尝试编写一个游戏,其中一个角色四处移动并从一个块跳到另一个块以便结束。但我面临的问题是我的KeyPressed方法不会运行。我试过放一个System.out.println(“你好”);在方法中查看它是否甚至开始运行。但是“嗨”从未出现过。这是我的代码。

import java.applet.Applet;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

public class Driver extends Applet implements KeyListener
{
    private int X = 0;
    private int Y = 250;
    private int sizeX = 25;
    private int sizeY = 25;
    private boolean start=false;
    public int  getX()
    {
        return X;
    }
    public void setX(int x)
    {
        X = x;
    }
    public int  getY()
    {
        return Y;
    }
    public void setY(int y)
    {
        Y = y;
    }
    public int  getsizeY()
    {
        return sizeY;
    }
    public void setsizeY(int sizey)
    {
        sizeY = sizey;
    }
    public int  getsizeX()
    {
        return sizeX;
    }
    public void setsizeX(int sizex)
    {
        sizeX = sizex;
    }
    public void init()
    {
        this.addKeyListener(this);
        setSize(300, 300);
        setFocusable(false);
        requestFocus();
    }
    public void paint(Graphics g)
    {
        init();
        map map1 = new map();
        g.setColor(Color.WHITE);
        g.fillRect(0, 0, 300, 300);
        g.setColor(Color.black);
        map1.paint(g);
        g.fillRect(X, Y, sizeX, sizeY);
        start=true;
    }
    public void keyTyped(KeyEvent e)
    {

    }

    public void keyReleased(KeyEvent e)
    {

    }

    public void keyPressed(KeyEvent e) 
    {
        if(start)
        {
            System.out.println("Hi");
            if(e.getKeyChar() == 'w')
            {
                System.out.println("Hi");
                setY(getY()-1);
            }
            if(e.getKeyChar() == 'd')
            {
                setX(getX()+1); 
            }
            if(e.getKeyChar() == 'a')
            {
                setX(getX()-1);
            }
            if(e.getKeyChar() == 's')
            {
                setY(getY()+1);
            }
            repaint();
        }
    }
}

我仍然在学习如何编码所以请不要吝啬,但如果你能提供帮助那就太棒了!

0 个答案:

没有答案