Skip to content
Permalink
Browse files

I added a ton of stuff including collision(right now lasers kill stuff

and continue on), movement, shooting, enemies spawning in randomly and
moving to the left with random speeds, background, I created some
interfaces. Right now the game is an actual "game" but you can't lose.
There is not yet a menu
  • Loading branch information
jdm13003 committed Apr 17, 2016
1 parent 542c0f9 commit 4e25ca42f84515f0bad4c28ff0772e61f168fb91
Binary file not shown.
@@ -0,0 +1,13 @@
package entity;

import java.awt.Graphics;
import java.awt.Rectangle;

public interface EntityTypeA {

public void tick();
public void render(Graphics g);
public Rectangle getBounds();
public double getX();
public double getY();
}
@@ -0,0 +1,14 @@
package entity;

import java.awt.Graphics;
import java.awt.Rectangle;

public interface EntityTypeB {

public void tick();
public void render(Graphics g);
public Rectangle getBounds();

public double getX();
public double getY();
}
@@ -2,37 +2,74 @@

import java.awt.Graphics;
import java.util.LinkedList;
import java.util.Random;

import entity.EntityTypeA;
import entity.EntityTypeB;

public class Controller {
private LinkedList<Laser> l = new LinkedList<Laser>();

Laser tempLaser;

Game game;
private LinkedList<EntityTypeA> ea = new LinkedList<EntityTypeA>();
private LinkedList<EntityTypeB> eb = new LinkedList<EntityTypeB>();

EntityTypeA tempea;
EntityTypeB tempeb;
Random r = new Random();
private Skins skin;
private Game game;

public Controller(Game game){
public Controller(Skins skin, Game game){
this.skin = skin;
this.game = game;
addLaser(new Laser(100, 300, game));
}
public void createEnemy(int enemy_count){
for(int i = 0; i < enemy_count; i++){
addEntity(new EnemyFighter(810, r.nextInt(536), skin, this, game));

}
}

public void tick(){
for(int i = 0; i < l.size(); i++){
tempLaser = l.get(i);
for(int n = 0; n < ea.size(); n++){
tempea = ea.get(n);

tempea.tick();
}
for(int n = 0; n < eb.size(); n++){
tempeb = eb.get(n);

tempLaser.tick();
tempeb.tick();
}
}
public void render(Graphics g){
for(int i = 0; i < l.size(); i++){
tempLaser = l.get(i);
for(int n = 0; n < ea.size(); n++){
tempea = ea.get(n);

tempLaser.render(g);
tempea.render(g);
}
for(int n = 0; n < eb.size(); n++){
tempeb = eb.get(n);

tempeb.render(g);
}
}
public void addEntity(EntityTypeA en){
ea.add(en);
}
public void removeEntity(EntityTypeA en){
ea.remove(en);
}
public void addLaser(Laser laser){
l.add(laser);
public void addEntity(EntityTypeB en){
eb.add(en);
}
public void removeLaser(Laser laser){
l.remove(laser);
public void removeEntity(EntityTypeB en){
eb.remove(en);
}
public LinkedList<EntityTypeA> getEntityA(){
return ea;
}
public LinkedList<EntityTypeB> getEntityB(){
return eb;
}

}

@@ -0,0 +1,44 @@
package main;

import java.awt.Graphics;
import java.awt.Rectangle;
import java.util.Random;

import entity.EntityTypeB;

public class EnemyFighter extends GameObject implements EntityTypeB{
private Skins skin;

Random r = new Random();
private Game game;
private Controller controller;
private int speed = r.nextInt(3)+1;

public EnemyFighter(double x, double y, Skins skin, Controller c, Game game){
super(x,y);
this.game = game;
this.controller = c;
this.skin = skin;
}
public double getX(){
return x;
}

public void tick(){
x -= speed;
if(GamePhysics.Collision(this, game.ea)){
controller.removeEntity(this);

game.setKills(game.getKills()+1);
}
}
public void render(Graphics g){
g.drawImage(skin.enemy1, (int)x, (int)y, null);
}
public double getY() {
return y;
}
public Rectangle getBounds(){
return new Rectangle((int)x, (int) y, 64, 64);
}
}
@@ -2,33 +2,51 @@


import java.awt.Canvas;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.event.KeyEvent;
import java.awt.image.BufferStrategy;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.util.LinkedList;
import java.util.Random;

import javax.swing.JFrame;

import entity.EntityTypeA;
import entity.EntityTypeB;

public class Game extends Canvas implements Runnable{

private static final long serialVersionUID = 1L;
public static final int Width = 800;
public static final int Height = 600;
public final String Title = "Padriaca";
public final String Title = "Star Wars";

private boolean gameon = false;
private Thread thread;


private BufferedImage image = new BufferedImage(Width, Height, BufferedImage.TYPE_INT_RGB);
private BufferedImage spriteSheet = null;
private BufferedImage background = null;

private int is_shooting = 0;

private int enemy_count = 1;
private int kills = 0;
public LinkedList<EntityTypeA> ea;
public LinkedList<EntityTypeB> eb;

Random r = new Random();



//private BufferedImage player;
private Player p;
private Controller c;
private Skins tp;

public void init()
{
@@ -37,14 +55,18 @@ public void init()
try{

spriteSheet = loader.loadimage("/sprite_sheet.png");
background = loader.loadimage("/background.png");

}catch(IOException e){
e.printStackTrace();
}
addKeyListener(new KeyboardInput(this));

p = new Player(200, 200, this);
c = new Controller(this);
tp = new Skins(this);
p = new Player(200, 200, tp, this);
c = new Controller(tp, this);
ea = c.getEntityA();
eb = c.getEntityB();
c.createEnemy(enemy_count);
}


@@ -123,6 +145,12 @@ public void run() {
private void tick() {
p.tick();
c.tick();

if(kills >= enemy_count){
enemy_count +=2;
kills = 0;
c.createEnemy(enemy_count);
}
}
private void render(){
BufferStrategy bufferstrat = this.getBufferStrategy();
@@ -133,7 +161,7 @@ private void render(){
Graphics g = bufferstrat.getDrawGraphics();
/////////////////
g.drawImage(image, 0, 0, getWidth(), getHeight(), this);

g.drawImage(background, 0,0, null);
//g.drawImage(player, 100, 100, this);
p.render(g);
c.render(g);
@@ -154,6 +182,13 @@ public void keyPressed(KeyEvent e){
p.setVelY(5);
} else if(key == KeyEvent.VK_UP){
p.setVelY(-5);
} else if(key == KeyEvent.VK_SPACE ){
if(is_shooting == 3){
is_shooting = 0;
}
if(is_shooting == 0){
c.addEntity(new Laser(p.getX(),p.getY(), tp, this));}
is_shooting++;
}

}
@@ -168,11 +203,26 @@ public void keyReleased(KeyEvent e){
p.setVelY(0);
} else if(key == KeyEvent.VK_UP){
p.setVelY(0);
} else if(key == KeyEvent.VK_SPACE ){
is_shooting =0;
}

}

public BufferedImage getSpriteSheet(){
return spriteSheet;
}

public int getEnemy_count() {
return enemy_count;
}
public void setEnemy_count(int enemy_count) {
this.enemy_count = enemy_count;
}
public int getKills() {
return kills;
}
public void setKills(int kills) {
this.kills = kills;
}
}
@@ -0,0 +1,17 @@
package main;

import java.awt.Rectangle;

public class GameObject {
public double x;
public double y;
public GameObject(double x, double y){
this.x = x;
this.y = y;

}

public Rectangle getBounds(int width, int height){
return new Rectangle((int)x, (int) y, width, height);
}
}
@@ -0,0 +1,25 @@
package main;

import java.util.LinkedList;

import entity.EntityTypeA;
import entity.EntityTypeB;

public class GamePhysics {
public static boolean Collision(EntityTypeA enta, LinkedList<EntityTypeB> bb){
for(int n = 0; n <bb.size(); n++ ){
if(enta.getBounds().intersects(bb.get(n).getBounds())){
return true;
}
}
return false;
}
public static boolean Collision(EntityTypeB entb, LinkedList<EntityTypeA> aa){
for(int n = 0; n <aa.size(); n++ ){
if(entb.getBounds().intersects(aa.get(n).getBounds())){
return true;
}
}
return false;
}
}

0 comments on commit 4e25ca4

Please sign in to comment.
You can’t perform that action at this time.