Skip to content

Instantly share code, notes, and snippets.

@boyanov83
Created September 17, 2014 18:06
Show Gist options
  • Save boyanov83/5bac376c675b9145c7b6 to your computer and use it in GitHub Desktop.
Save boyanov83/5bac376c675b9145c7b6 to your computer and use it in GitHub Desktop.
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.util.ArrayList;
import java.util.Random;
import javax.swing.JFrame;
public class GameRun extends JFrame {
public static final Object xPos = null;
static int myX = 430;
static int myY = 400;
static int myX2 = 300;
static int myY2 = 300;
Image imageToBeDraw;
Image imageToBeDraw2;
Image imageToBeDrawBg;
static boolean player1 = true;
static boolean player2 = true;
Rain rain;
public GameRun() {
// Player player = new Player();
setSize(500, 500);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setResizable(false);
setVisible(true);
imageToBeDraw = Toolkit.getDefaultToolkit().getImage("spaceship2.png");
imageToBeDraw2 = Toolkit.getDefaultToolkit().getImage("spaceship.png");
imageToBeDrawBg = Toolkit.getDefaultToolkit()
.getImage("Background.jpg");
addKeyListener(new KeyAdapter() {
public void keyPressed(KeyEvent evt) {
moveIt(evt);
}
});
}
public void paint(Graphics g) {
g.clearRect(0, 0, 500, 500);
g.drawImage(imageToBeDrawBg, 0, 0, null);
try {
Rain.draw(g);
} catch (InterruptedException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
if (player1 == true) {
g.drawImage(imageToBeDraw, myX, myY, null);
}
if (player2 == true) {
g.drawImage(imageToBeDraw2, myX2, myY2, null);
}
try {
Thread.sleep(70);
} catch (InterruptedException e) {
e.printStackTrace();
}
repaint();
}
public void moveIt(KeyEvent evt) {
switch (evt.getKeyCode()) {
case KeyEvent.VK_DOWN:
myY += 10;
if (myY > 480) {
myY = 0;
}
break;
case KeyEvent.VK_UP:
myY -= 10;
if (myY < 0) {
myY = 500;
}
break;
case KeyEvent.VK_LEFT:
myX -= 10;
if (myX < 0) {
myX = 500;
}
break;
case KeyEvent.VK_RIGHT:
myX += 10;
if (myX > 500) {
myX = 0;
}
break;
case KeyEvent.VK_S:
myY2 += 10;
if (myY2 > 480) {
myY2 = 0;
}
break;
case KeyEvent.VK_W:
myY2 -= 10;
if (myY2 < 0) {
myY2 = 500;
}
break;
case KeyEvent.VK_A:
myX2 -= 10;
if (myX2 < 0) {
myX2 = 500;
}
break;
case KeyEvent.VK_D:
myX2 += 10;
if (myX2 > 500) {
myX2 = 0;
}
break;
}
repaint();
}
public static void main(String[] args) {
GameRun game = new GameRun();
}
}
class Rain {
static Random rnd = new Random();
static int yy = 10;
static ArrayList<Object> rain = new ArrayList<Object>();
private static boolean collisionCheck(Object rockX, Object rockY, int spaceshipx,
int spaceshipy) {
if ((spaceshipx >= (int)rockX && spaceshipx <= (int)rockX + 16)
&& (spaceshipy >= (int)rockY && spaceshipy <= (int)rockY + 16)) {
return true;
}
return false;
}
static void draw(Graphics g) throws InterruptedException {
if (rain.size() < 60) {
rain.add(yy);
yy -= 20;
rain.add(rnd.nextInt(490));
rain.add(Toolkit.getDefaultToolkit().getImage("rock.png"));
}
for (int i = 0; i < rain.size(); i += 3) {
g.drawImage((Image) rain.get(i + 2), (int) rain.get(i + 1), (int) rain.get(i), null);
rain.set(i, ((int) rain.get(i)) + 5);
if ((int) rain.get(i) >= 490) {
rain.set(i, 10);
rain.set(i + 1, rnd.nextInt(490));
} else {
collisionObjectSetter(i, rain);
}
}
try {
Thread.sleep(2);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
private static void collisionObjectSetter(int i, ArrayList<Object> rain) {
// spaceship checks are below
if (collisionCheck(rain.get(i + 1),rain.get(i),GameRun.myX, GameRun.myY + 18))
{
GameRun.player1 = false;
} else if (collisionCheck(rain.get(i + 1), rain.get(i), GameRun.myX + 17, GameRun.myY))
{
GameRun.player1 = false;
} else if (collisionCheck(rain.get(i + 1), rain.get(i), GameRun.myX + 32, GameRun.myY + 18))
{
GameRun.player1 = false;
} else if (collisionCheck(rain.get(i + 1), rain.get(i), GameRun.myX + 17, GameRun.myY + 43))
{
GameRun.player1 = false;
} else if (collisionCheck(rain.get(i + 1), rain.get(i), GameRun.myX + 3, GameRun.myY + 35))
{
GameRun.player1 = false;
} else if (collisionCheck(rain.get(i + 1), rain.get(i), GameRun.myX + 31, GameRun.myY + 35))
{
GameRun.player1 = false;
}
// spaceship2 checks are below
if (collisionCheck(rain.get(i + 1),rain.get(i),GameRun.myX2, GameRun.myY2 + 18))
{
GameRun.player2 = false;
}
else if (collisionCheck(rain.get(i + 1), rain.get(i), GameRun.myX2 + 17, GameRun.myY2))
{
GameRun.player2 = false;
}
else if (collisionCheck(rain.get(i + 1), rain.get(i), GameRun.myX2 + 32, GameRun.myY2 + 18))
{
GameRun.player2 = false;
}
else if (collisionCheck(rain.get(i + 1), rain.get(i), GameRun.myX2 + 17, GameRun.myY2 + 43))
{
GameRun.player2 = false;
}
else if (collisionCheck(rain.get(i + 1), rain.get(i), GameRun.myX2 + 3, GameRun.myY2 + 35))
{
GameRun.player2 = false;
}
else if (collisionCheck(rain.get(i + 1), rain.get(i), GameRun.myX2 + 31, GameRun.myY2 + 35))
{
GameRun.player2 = false;
}
}
void update() {
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment