Ciao a tutti, sto cercando di fare un gioco molto semplice in java, per muovere il giocatore ho inserito un keylistener, purtroppo però non funziona. Ho già usato i keylistener altre volte, ma questa volta non riesco proprio a capire come funziona. Ecco il codice:
Non so se possa servire ma sto usando un CardLayout per passare dal menu al gioco quando viene cliccato il bottone play nel menu.codice:public class Game extends JPanel implements KeyListener { private String ibackgroundpath = "/images/background.png"; private String ibackground1path = "/images/background1.png"; private String iplayerpath = "/images/player.png"; private int bgx = 0, bgy = 0, bg1x = 0, bg1y = bgy - Main.HEIGHT; private int playerx = 360, playery = 400, velX = 0, velY = 0; public boolean up = false, down = false, left = false, right = false; public void paint(Graphics g) {} public Image getBackgroundImage() {} public Image getBackground1Image() {} public Image getPlayerImage() {} public void moveBackground() {} public void movePlayer(){ if(up){ velY = -2; } if(down){ velY = 2; } if(right){ velX = 2; } if(left){ velX = -2; } } @Override public void keyPressed(KeyEvent e) { int key = e.getKeyCode(); if (key == KeyEvent.VK_W) { up = true; } if (key == KeyEvent.VK_S) { down = true; } if (key == KeyEvent.VK_A) { left = true; } if (key == KeyEvent.VK_D) { right = true; } } @Override public void keyReleased(KeyEvent e) { int key = e.getKeyCode(); if (key == KeyEvent.VK_W) { up = false; } if (key == KeyEvent.VK_S) { down = false; } if (key == KeyEvent.VK_A) { left = false; } if (key == KeyEvent.VK_D) { right = false; } } @Override public void keyTyped(KeyEvent e) {} public void update() { addKeyListener(this); setFocusable(true); moveBackground(); movePlayer(); playerx += velX; playery += velY; } }
Sapete quale potrebbe essere il problema?
Grazie in anticipo![]()

Rispondi quotando