Skip to content

Instantly share code, notes, and snippets.

@boyanov83
Created September 17, 2014 22:50
Show Gist options
  • Save boyanov83/eb0f7c02e0dbf580804d to your computer and use it in GitHub Desktop.
Save boyanov83/eb0f7c02e0dbf580804d to your computer and use it in GitHub Desktop.
class Rain {
static Random rnd = new Random();
static int yy = 10;
static int enemySize = 16;
static ArrayList<Object> rain = new ArrayList<Object>();
static Object[] enemies = { Toolkit.getDefaultToolkit().getImage("dollar.png"), //0
Toolkit.getDefaultToolkit().getImage("rock.png"), //1
Toolkit.getDefaultToolkit().getImage("rock.png"), //2
Toolkit.getDefaultToolkit().getImage("rock.png"), //3
Toolkit.getDefaultToolkit().getImage("rock.png"), //4
Toolkit.getDefaultToolkit().getImage("rock.png"), //5
Toolkit.getDefaultToolkit().getImage("rock.png"), //6
Toolkit.getDefaultToolkit().getImage("rock.png"), //7
Toolkit.getDefaultToolkit().getImage("enemy2.png"), //8
Toolkit.getDefaultToolkit().getImage("enemy2.png"), //9
Toolkit.getDefaultToolkit().getImage("enemy3.png"), //10
Toolkit.getDefaultToolkit().getImage("enemy3.png"), //11
Toolkit.getDefaultToolkit().getImage("enemy4.png"), //12
Toolkit.getDefaultToolkit().getImage("enemy4.png"),}; //13
private static boolean collisionCheck(Object rockX, Object rockY, int spaceshipx,int spaceshipy,Object enemySize)
{
if ((spaceshipx >= (int)rockX && spaceshipx <= (int)rockX + (int)enemySize)
&& (spaceshipy >= (int)rockY && spaceshipy <= (int)rockY + (int)enemySize)) {
return true;
}
return false;
}
static void draw(Graphics g) throws InterruptedException {
if (rain.size() < 80) {
rain.add(yy); // 1. add y
yy -= 20;
rain.add(rnd.nextInt(490)); // 2. add x
enemySize = rnd.nextInt(enemies.length);
rain.add(enemies[enemySize]); // 3. add enemy
rain.add(getEnemySize(enemySize)); //4. TODO add size for collisionChecks
//rain.add(Toolkit.getDefaultToolkit().getImage("rock.png"));
}
for (int i = 0; i < rain.size(); i += 4) {
g.drawImage((Image)rain.get(i + 2), (int) rain.get(i + 1), (int) rain.get(i), null);
rain.set(i, ((int) rain.get(i)) + 2);
if ((int) rain.get(i) >= 490) {
rain.set(i, 10);
rain.set(i + 1, rnd.nextInt(490));
} else {
collisionObjectSetter(i, rain);
}
}
try {
Thread.sleep(0, 1);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
private static int getEnemySize(int num)
{
if (num >= 0 && num <= 7)
{
return 16;
}
else if (num >= 8 && num <= 11)
{
return 32;
}
else if (num >= 12 && num <= 13)
{
return 64;
}
return 0;
}
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, rain.get(i+3)))
{
GameRun.player1 = false;
} else if (collisionCheck(rain.get(i + 1), rain.get(i), GameRun.myX + 17, GameRun.myY, rain.get(i+3)))
{
GameRun.player1 = false;
} else if (collisionCheck(rain.get(i + 1), rain.get(i), GameRun.myX + 32, GameRun.myY + 18, rain.get(i+3)))
{
GameRun.player1 = false;
} else if (collisionCheck(rain.get(i + 1), rain.get(i), GameRun.myX + 17, GameRun.myY + 43, rain.get(i+3)))
{
GameRun.player1 = false;
} else if (collisionCheck(rain.get(i + 1), rain.get(i), GameRun.myX + 3, GameRun.myY + 35, rain.get(i+3)))
{
GameRun.player1 = false;
} else if (collisionCheck(rain.get(i + 1), rain.get(i), GameRun.myX + 31, GameRun.myY + 35, rain.get(i+3)))
{
GameRun.player1 = false;
}
// spaceship2 checks are below
if (collisionCheck(rain.get(i + 1),rain.get(i),GameRun.myX2, GameRun.myY2 + 18, rain.get(i+3)))
{
GameRun.player2 = false;
}
else if (collisionCheck(rain.get(i + 1), rain.get(i), GameRun.myX2 + 17, GameRun.myY2, rain.get(i+3)))
{
GameRun.player2 = false;
}
else if (collisionCheck(rain.get(i + 1), rain.get(i), GameRun.myX2 + 32, GameRun.myY2 + 18, rain.get(i+3)))
{
GameRun.player2 = false;
}
else if (collisionCheck(rain.get(i + 1), rain.get(i), GameRun.myX2 + 17, GameRun.myY2 + 43, rain.get(i+3)))
{
GameRun.player2 = false;
}
else if (collisionCheck(rain.get(i + 1), rain.get(i), GameRun.myX2 + 3, GameRun.myY2 + 35, rain.get(i+3)))
{
GameRun.player2 = false;
}
else if (collisionCheck(rain.get(i + 1), rain.get(i), GameRun.myX2 + 31, GameRun.myY2 + 35, rain.get(i+3)))
{
GameRun.player2 = false;
}
}
void update() {
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment