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