与键侦听器斗争(Java)

时间:2018-09-26 05:49:00

标签: java game-development

我一直在关注TheCherno关于Java游戏开发的教程系列。他只将精灵用于四个方向,而我想用于8个方向(向上+向右等) 我一直在尝试获取代码,以便在按下两个方向键时返回布尔值,而我似乎碰到了一个树桩,我不确定下一步该怎么做。有任何想法吗?谢谢。

import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.util.HashSet;
import java.util.Set;

public class Keyboard implements KeyListener {

    private Set<Character> pressed = new HashSet<Character>();
    public boolean up, down, left, right, upright, downright, downleft, upleft;

    public void update() {
        for (Character c : pressed) {
            if (c == KeyEvent.VK_A) {
                left = true;
            } else if (c == KeyEvent.VK_S) {
                down = true;
            } else if (c == KeyEvent.VK_D) {
                right = true;
            } else if (c == KeyEvent.VK_W) {
                up = true;
            }
        }

        if (up && right) upright = true;
        if (down && right) downright = true;
        if (down && left) downleft = true;
        if (up && left) upleft = true;

    }

    public void keyReleased(KeyEvent e) {

        pressed.remove(e.getKeyChar());

    }

    public void keyPressed(KeyEvent e) {

        pressed.add(e.getKeyChar());

    }

    public void keyTyped(KeyEvent e) {

    }
}

0 个答案:

没有答案