Select Git revision
editor_ajax.php
-
Thomas Marstrander authoredThomas Marstrander authored
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) {
}
}