Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import javax.swing.*;
- import java.awt.*;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import java.awt.event.KeyEvent;
- import java.awt.event.KeyListener;
- public class MovementGame extends JFrame {
- private static final int WIDTH = 400;
- private static final int HEIGHT = 400;
- private int characterX = 50;
- private int characterY = 50;
- public MovementGame() {
- setTitle("Movement Game");
- setSize(WIDTH, HEIGHT);
- setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- MovementPanel movementPanel = new MovementPanel();
- add(movementPanel);
- addKeyListener(new MovementKeyListener());
- Timer timer = new Timer(10, new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent e) {
- movementPanel.update();
- }
- });
- timer.start();
- }
- private class MovementPanel extends JPanel {
- @Override
- protected void paintComponent(Graphics g) {
- super.paintComponent(g);
- g.setColor(Color.BLUE);
- g.fillRect(characterX, characterY, 30, 30);
- }
- public void update() {
- repaint();
- }
- }
- private class MovementKeyListener implements KeyListener {
- @Override
- public void keyPressed(KeyEvent e) {
- int keyCode = e.getKeyCode();
- switch (keyCode) {
- case KeyEvent.VK_LEFT:
- moveLeft();
- break;
- case KeyEvent.VK_RIGHT:
- moveRight();
- break;
- case KeyEvent.VK_UP:
- moveUp();
- break;
- case KeyEvent.VK_DOWN:
- moveDown();
- break;
- }
- }
- @Override
- public void keyTyped(KeyEvent e) {
- // Not used
- }
- @Override
- public void keyReleased(KeyEvent e) {
- // Not used
- }
- private void moveLeft() {
- characterX -= 5;
- }
- private void moveRight() {
- characterX += 5;
- }
- private void moveUp() {
- characterY -= 5;
- }
- private void moveDown() {
- characterY += 5;
- }
- }
- public static void main(String[] args) {
- SwingUtilities.invokeLater(new Runnable() {
- @Override
- public void run() {
- new MovementGame().setVisible(true);
- }
- });
- }
- }
- In this example, the character (represented by a blue rectangle) can be moved using the arrow keys. The MovementGame class contains a MovementPanel class that extends JPanel and handles the drawing of the character. The MovementKeyListener class listens for arrow key presses and updates the character's position accordingly.
Advertisement
Add Comment
Please, Sign In to add comment