commit
a1aa8a006f
@ -0,0 +1,3 @@
|
|||||||
|
*.class
|
||||||
|
*.swp
|
||||||
|
|
@ -0,0 +1,3 @@
|
|||||||
|
#Tank Game
|
||||||
|
Blow up the other tanks, except they don't exist yet.
|
||||||
|
|
@ -0,0 +1,27 @@
|
|||||||
|
import javax.swing.*;
|
||||||
|
import java.awt.*;
|
||||||
|
import java.awt.event.KeyEvent;
|
||||||
|
import java.awt.event.KeyListener;
|
||||||
|
|
||||||
|
|
||||||
|
public class main {
|
||||||
|
public static void main(String[] args) {
|
||||||
|
System.out.println("I like birds.");
|
||||||
|
JFrame mainframe = new JFrame();
|
||||||
|
mainframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
||||||
|
mainframe.setResizable(false);
|
||||||
|
mainframe.setTitle("Tank Game");
|
||||||
|
mainframe.setLocationRelativeTo(null);
|
||||||
|
mainframe.setSize(800, 600);
|
||||||
|
|
||||||
|
//JLabel label = new JLabel("Label test!", JLabel.CENTER);
|
||||||
|
//mainframe.add(label);
|
||||||
|
|
||||||
|
player playerPanel = new player();
|
||||||
|
mainframe.add(playerPanel);
|
||||||
|
playerPanel.requestFocusInWindow();
|
||||||
|
|
||||||
|
mainframe.setVisible(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,109 @@
|
|||||||
|
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 player extends JPanel implements KeyListener, ActionListener {
|
||||||
|
private Image sprite;
|
||||||
|
private int x = 400;
|
||||||
|
private int y = 512;
|
||||||
|
private int spd = 1;
|
||||||
|
|
||||||
|
//Movement bools
|
||||||
|
private boolean leftPressed = false;
|
||||||
|
private boolean rightPressed = false;
|
||||||
|
private boolean upPressed = false;
|
||||||
|
private boolean downPressed = false;
|
||||||
|
private boolean shootPressed = false;
|
||||||
|
|
||||||
|
//Game loop timer
|
||||||
|
private Timer timer;
|
||||||
|
|
||||||
|
public player() {
|
||||||
|
ImageIcon icon = new ImageIcon("spr/tank1.png");
|
||||||
|
sprite = icon.getImage();
|
||||||
|
setFocusable(true);
|
||||||
|
addKeyListener(this);
|
||||||
|
setPreferredSize(new Dimension(800, 600));
|
||||||
|
//Timer to set target framerate to 60 (~16ms/frame)
|
||||||
|
timer = new Timer(1000 / 60, this);
|
||||||
|
timer.start();
|
||||||
|
}
|
||||||
|
private void updatePlayerPos() {
|
||||||
|
if (leftPressed) x -= spd;
|
||||||
|
if (rightPressed) x += spd;
|
||||||
|
if (upPressed) y -= spd;
|
||||||
|
if (downPressed) y += spd;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void paintComponent(Graphics g) {
|
||||||
|
super.paintComponent(g);
|
||||||
|
g.drawImage(sprite, x, y, this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void keyPressed(KeyEvent e) {
|
||||||
|
int key = e.getKeyCode();
|
||||||
|
switch (key) {
|
||||||
|
case KeyEvent.VK_LEFT:
|
||||||
|
case KeyEvent.VK_A:
|
||||||
|
leftPressed = true;
|
||||||
|
break;
|
||||||
|
case KeyEvent.VK_RIGHT:
|
||||||
|
case KeyEvent.VK_D:
|
||||||
|
rightPressed = true;
|
||||||
|
break;
|
||||||
|
case KeyEvent.VK_UP:
|
||||||
|
case KeyEvent.VK_W:
|
||||||
|
upPressed = true;
|
||||||
|
break;
|
||||||
|
case KeyEvent.VK_DOWN:
|
||||||
|
case KeyEvent.VK_S:
|
||||||
|
downPressed = true;
|
||||||
|
break;
|
||||||
|
case KeyEvent.VK_SPACE:
|
||||||
|
shootPressed = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public void keyReleased(KeyEvent e) {
|
||||||
|
int key = e.getKeyCode();
|
||||||
|
switch (key) {
|
||||||
|
case KeyEvent.VK_LEFT:
|
||||||
|
case KeyEvent.VK_A:
|
||||||
|
leftPressed = false;
|
||||||
|
break;
|
||||||
|
case KeyEvent.VK_RIGHT:
|
||||||
|
case KeyEvent.VK_D:
|
||||||
|
rightPressed = false;
|
||||||
|
break;
|
||||||
|
case KeyEvent.VK_UP:
|
||||||
|
case KeyEvent.VK_W:
|
||||||
|
upPressed = false;
|
||||||
|
break;
|
||||||
|
case KeyEvent.VK_DOWN:
|
||||||
|
case KeyEvent.VK_S:
|
||||||
|
downPressed = false;
|
||||||
|
break;
|
||||||
|
case KeyEvent.VK_SPACE:
|
||||||
|
shootPressed = false;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void keyTyped(KeyEvent e) {
|
||||||
|
//UNUSED
|
||||||
|
}
|
||||||
|
|
||||||
|
public void actionPerformed(ActionEvent e) {
|
||||||
|
updatePlayerPos();
|
||||||
|
repaint();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in new issue