2016-05-05 7 views
0

Я делаю игру для своего школьного проекта в конце года, и в своей игре необходимо иметь возможность перемещать игрока по экрану с помощью клавиш со стрелками. Я хотел бы переместить изображение (playerUpImageLabel) с помощью клавиш со стрелками, но я не знаю, как это сделать. Я стараюсь оглядываться в Интернете, как это сделать, но не повезло.JAVA- Перемещение изображения с помощью клавиш со стрелками

Программа работает на данный момент, но я не знаю, как перемещать изображение (playerUpImageLabel) с помощью клавиш со стрелками.

Любая помощь Пожалуйста?

import javax.swing.*; 
import java.awt.*; 
import java.awt.event.*; 

public class Game { 

    public void game() { 

    JFrame gameFrame = new JFrame(); 
    JPanel gamePanel = new JPanel(); 
    JLabel floorLabel = new JLabel(); 
    JLabel copyrightLabel = new JLabel(); 

    ImageIcon floorImage = new ImageIcon(); 

    int playerMovementX; 
    int playerMovementY; 

    playerMovementX = 280; 
    playerMovementY = 280; 

    ImageIcon playerUpImage = new ImageIcon(); 
    JLabel playerUpImageLabel = new JLabel(); 

    ImageIcon playerLeftImage = new ImageIcon(); 
    JLabel playerLeftImageLabel = new JLabel(); 

    ImageIcon playerRightImage = new ImageIcon(); 
    JLabel playerRightImageLabel = new JLabel(); 

    ImageIcon playerDownImage = new ImageIcon(); 
    JLabel playerDownImageLabel = new JLabel(); 


    ImageIcon playerNormalImage = new ImageIcon(); 
    JLabel playerNormalImageLabel = new JLabel(); 

    gameFrame = new JFrame("Zombehs"); 
    gameFrame.setVisible(true); 
    gameFrame.setSize(600, 620); 
    gameFrame.setResizable(false); 
    gameFrame.setLocationRelativeTo(null); 
    gameFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 


    gamePanel = new JPanel(); 
    gamePanel.setLayout(null); 
    gameFrame.add(gamePanel); 


    floorImage = new ImageIcon(getClass().getResource("/Users/JakeBorg/Desktop/JavaPro/res/floor.png")); 
    floorLabel = new JLabel(floorImage); 
    floorLabel.setBounds(0, 0, 600, 600); 


    copyrightLabel = new JLabel("Copyright @ 2016 Jake_Borg"); 
    copyrightLabel.setFont(new Font("DorFont01", Font.BOLD, 10)); 
    copyrightLabel.setBounds(500, 580, 100, 10); 


    // Player 
    playerUpImage = new ImageIcon(getClass().getResource("/Users/JakeBorg/Desktop/JavaPro/res/player/Up_1.png")); 
    playerUpImageLabel = new JLabel(playerUpImage); 
    playerUpImageLabel.setBounds(playerMovementX, playerMovementY, 33, 33); 

    playerNormalImageLabel = playerUpImageLabel; 



    gamePanel.add(playerNormalImageLabel); 
    gamePanel.add(floorLabel); 
    gamePanel.add(copyrightLabel); 

    } 

} 
+0

См. Http://stackoverflow.com/questions/36894487/java-gui-how-to-move-a-ball-using-wasd-keys/36894544#36894544 – camickr

ответ

0

Вы должны использовать Key Bindings. В основном вам нужно создать Action, который вызывается всякий раз, когда вызывается конкретный KeyStroke.

Отъезд Motion Using The Keyboard для рабочих примеров. Кроме того, вы найдете ссылки на учебник Swing, объясняющий Key Bindings и Actions.

Смежные вопросы