Skip to content
Snippets Groups Projects
Select Git revision
  • becbcfee2e5e7436f72007cf50adfcb9ca384920
  • master default
  • fix-remote-url_v4.9.1
  • fix-remote-url_v4.8.3
  • fix-remote-url_v4.8.x
  • fix-remote-url_v4.7.x
  • fix-remote-url_v4.6.0
  • fix-remote-urls
8 results

questiontestedit.php

Blame
  • GamePanel.java 3.51 KiB
    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 GamePanel extends JPanel implements ActionListener, KeyListener {
    
        private static final long serialVersionUID = 1L;
        ImageIcon ggwp;
        ImageIcon ground;
        ImageIcon steve;
    
        Timer timer = new Timer(5, this);
        int x = 10, y = 10, velX = 0, velY = 0, veldX = 0, veldY = 0;
        int playerSize = 27;
        int movmentSpeed = 3;
        int faildRounds;
    
        private Walls walls;
        private boolean running;
        private boolean nextMap = false;
    
        public GamePanel(int mapN) {
            timer.start();
            addKeyListener(this);
            setFocusable(true);
            setFocusTraversalKeysEnabled(false);
            running = true;
            walls = new Walls(mapN);
            ggwp = new ImageIcon(getClass().getClassLoader().getResource("ggwp.png"));
            this.setSize(817, 840);
            this.setLocation(100, 0);
            this.requestFocus(true);
    
        }
    
        public void paintComponent(Graphics g) {
            super.paintComponent(g);
    
            // Background;
            g.setColor(Color.cyan);
            g.fillRect(0, 0, getWidth(), getWidth());
    
            // Walls
            walls.draw(this, g);
    
            // Player
            if (running) {
                g.setColor(Color.blue);
                g.fillRect(x, y, playerSize, playerSize);
            }
            if (walls.wallsCollision(x, y, playerSize, playerSize)) {
                x = 10;
                y = 10;
            }
            if (walls.finishWallsCollision(x, y, playerSize, playerSize)) {
                running = false;
            }
            if (!running) {
                RoundFinishe(g);
            }
    
        }
    
        public void RoundFinishe(Graphics g) {
            if (!running) {
                g.setColor(Color.black);
                g.fillRect(0, 0, getWidth(), getHeight());
                ggwp.paintIcon(this, g, 280, 250);
                faildRounds++;
                nextMap = true;
    
            }
        }
    
        @Override
        public void keyPressed(KeyEvent e) {
            int c = e.getKeyCode();
            if (running) {
                if (c == KeyEvent.VK_LEFT || c == KeyEvent.VK_A)
                    veldX = -movmentSpeed;
                if (c == KeyEvent.VK_RIGHT || c == KeyEvent.VK_D)
                    velX = movmentSpeed;
                if (c == KeyEvent.VK_UP || c == KeyEvent.VK_W)
                    veldY = -movmentSpeed;
                if (c == KeyEvent.VK_DOWN || c == KeyEvent.VK_S)
                    velY = movmentSpeed;
            }
    
        }
    
        @Override
        public void keyReleased(KeyEvent e) {
            int c = e.getKeyCode();
            if (running) {
                if (c == KeyEvent.VK_LEFT || c == KeyEvent.VK_A)
                    veldX = 0;
                if (c == KeyEvent.VK_RIGHT || c == KeyEvent.VK_D)
                    velX = 0;
                if (c == KeyEvent.VK_UP || c == KeyEvent.VK_W)
                    veldY = 0;
                if (c == KeyEvent.VK_DOWN || c == KeyEvent.VK_S)
                    velY = 0;
            }
    
        }
    
        @Override
        public void actionPerformed(ActionEvent e) {
    
            if (x < 0) {
                velX = 0;
                x = 0;
            }
            if (x > getWidth() - playerSize) {
                velX = 0;
                x = getWidth() - playerSize;
            }
            if (y < 0) {
                velY = 0;
                y = 0;
            }
            if (y > getHeight() - playerSize) {
                velY = 0;
                y = getHeight() - playerSize;
            }
    
            x += velX + veldX;
            y += velY + veldY;
            repaint();
    
        }
    
        @Override
        public void keyTyped(KeyEvent e) {
        }
    
    }