-2
私は自分の楽しみのためにJavaでゲームを作成しています。移動キーを押すと、画面上の四角形が動いていません。ここで私は、後に複数のクラスを追加するつもりですが、これは私が今持っているものである私のKeyPressedがJavaで動作していない
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;
}
}
}
私の最初のクラス
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);
}
}
そして、私の第二のクラスです。誰かが私を助けてくれますか?