Added a Gaia player and added some random stones

This commit is contained in:
Ziver Koc 2007-04-21 21:18:27 +00:00
parent 397fb7ebd0
commit 65747bd267
40 changed files with 1316 additions and 45 deletions

1168
log.txt

File diff suppressed because it is too large Load diff

3
raw/ei Normal file
View file

@ -0,0 +1,3 @@
Manifest-Version: 1.0
Main-Class: ei.game.EI

BIN
raw/media/map/redstone.max Normal file

Binary file not shown.

BIN
raw/media/map/stone.max Normal file

Binary file not shown.

BIN
raw/media/map/tree.max Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
raw/media/sounds/lh1-1a.ogg Normal file

Binary file not shown.

BIN
raw/media/sounds/lh1-1b.ogg Normal file

Binary file not shown.

BIN
raw/media/sounds/lh1-1c.ogg Normal file

Binary file not shown.

Binary file not shown.

BIN
src/data/map/Grass.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 180 KiB

BIN
src/data/map/redmud.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 321 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 323 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 322 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 318 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 358 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 344 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 361 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 359 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -21,7 +21,7 @@ public class InGameState extends GameState{
rootNode = new Node("InGameNode"); rootNode = new Node("InGameNode");
map = new Map(20,20); map = new Map(20,20);
rootNode.add(map.getMapNode()); map.init();
InGameMouseInput mouse = new InGameMouseInput(map); InGameMouseInput mouse = new InGameMouseInput(map);
super.getInput().addInput(mouse); super.getInput().addInput(mouse);
@ -36,9 +36,10 @@ public class InGameState extends GameState{
player.addUnit(new Bomber(3, 0, player)); player.addUnit(new Bomber(3, 0, player));
player.addUnit(new APU(4, 0, player)); player.addUnit(new APU(4, 0, player));
rootNode.add(player.getNode());
PlayerHandler.getInstance().addPlayer(player); PlayerHandler.getInstance().addPlayer(player);
rootNode.add(map.getMapNode());
rootNode.add(PlayerHandler.getInstance().getNode());
rootNode.add(WeaponHandler.getInstance().getNode()); rootNode.add(WeaponHandler.getInstance().getNode());
} }

View file

@ -112,10 +112,10 @@ public class InGameMouseInput extends MouseInput{
LWJGLGameWindow.getCamera().getLocation().getX()+x, LWJGLGameWindow.getCamera().getLocation().getX()+x,
LWJGLGameWindow.getCamera().getLocation().getY()+y); LWJGLGameWindow.getCamera().getLocation().getY()+y);
removeDead(); removeDead();
//map.printAllUnits();
if(map.posExist(pos.getX(), pos.getY())){ if(map.posExist(pos.getX(), pos.getY())){
//selecting unit. //selecting unit.
if(event==LEFT_MOUSE_BUTTON){ if(event==LEFT_MOUSE_BUTTON){
//map.printAllUnits();
if(leftKlickPos == null){ if(leftKlickPos == null){
leftKlickPos = new Vector2f( leftKlickPos = new Vector2f(
LWJGLGameWindow.getCamera().getLocation().getX()+x, LWJGLGameWindow.getCamera().getLocation().getX()+x,

View file

@ -0,0 +1,37 @@
package ei.game.player;
import java.util.ArrayList;
import ei.engine.scene.Node;
import ei.game.scene.GameEntity;
import ei.game.scene.units.Unit;
public class GaiaPlayer extends Player{
private ArrayList<GameEntity> units;
private Node unitsNode;
public GaiaPlayer(){
units = new ArrayList<GameEntity>();
unitsNode = new Node("GaiaPlayerNode");
}
public void addUnit(Unit u){
units.add(u);
unitsNode.add(u.getNode());
}
public void removeUnit(Unit u){
units.remove(u);
unitsNode.remove(u.getNode());
}
public Node getNode(){
return unitsNode;
}
public void update() {
for(int i=0; i<units.size() ;i++){
units.get(i).update();
}
}
}

View file

@ -12,7 +12,7 @@ public class HumanPlayer extends Player{
public HumanPlayer(){ public HumanPlayer(){
units = new ArrayList<GameEntity>(); units = new ArrayList<GameEntity>();
unitsNode = new Node("UnitsNode"); unitsNode = new Node("HumanPlayerNode");
} }
public void addUnit(Unit u){ public void addUnit(Unit u){

View file

@ -2,11 +2,14 @@ package ei.game.player;
import java.util.ArrayList; import java.util.ArrayList;
import ei.engine.scene.Node;
public class PlayerHandler { public class PlayerHandler {
// The instance of this class // The instance of this class
private static PlayerHandler instance; private static PlayerHandler instance;
// The player list // The player list
private ArrayList<Player> players; private ArrayList<Player> players;
private Node playerNode;
/** /**
* Creates a PlayerHandler * Creates a PlayerHandler
@ -14,6 +17,16 @@ public class PlayerHandler {
*/ */
public PlayerHandler(){ public PlayerHandler(){
players = new ArrayList<Player>(); players = new ArrayList<Player>();
playerNode = new Node("PlayerNode");
}
/**
* Returns a node with all the players units
*
* @return A node with all the players units
*/
public Node getNode(){
return playerNode;
} }
/** /**
@ -25,6 +38,7 @@ public class PlayerHandler {
public boolean addPlayer(Player p){ public boolean addPlayer(Player p){
if(!players.contains(p)){ if(!players.contains(p)){
players.add(p); players.add(p);
playerNode.add(p.getNode());
return true; return true;
} }
return false; return false;
@ -38,6 +52,7 @@ public class PlayerHandler {
public boolean removePlayer(Player p){ public boolean removePlayer(Player p){
if(players.contains(p)){ if(players.contains(p)){
players.remove(p); players.remove(p);
playerNode.remove(p.getNode());
return true; return true;
} }
return false; return false;

View file

@ -5,6 +5,11 @@ import ei.engine.math.Vector2i;
import ei.engine.math.Vector3f; import ei.engine.math.Vector3f;
import ei.engine.scene.Node; import ei.engine.scene.Node;
import ei.engine.scene.Sprite; import ei.engine.scene.Sprite;
import ei.game.gamestate.InGameState;
import ei.game.player.GaiaPlayer;
import ei.game.player.Player;
import ei.game.player.PlayerHandler;
import ei.game.scene.map.Stone;
public class Map { public class Map {
private static final int POS_SIZE = 50; private static final int POS_SIZE = 50;
@ -16,10 +21,10 @@ public class Map {
public Map(int w, int h){ public Map(int w, int h){
this.width = w; this.width = w;
this.hight = h; this.hight = h;
init(); //init();
} }
private void init(){ public void init(){
map = new GameEntity[width][hight]; map = new GameEntity[width][hight];
// init textures // init textures
@ -32,6 +37,12 @@ public class Map {
mapNode.add(s); mapNode.add(s);
} }
} }
Player gaia = new GaiaPlayer();
PlayerHandler.getInstance().addPlayer(gaia);
for(int i=0; i<5 ;i++){
gaia.addUnit(new Stone(new Vector2i((int)(Math.random()*width),(int)(Math.random()*hight)),gaia));
}
} }
/** /**

View file

@ -0,0 +1,50 @@
package ei.game.scene.map;
import ei.engine.math.Vector2f;
import ei.engine.math.Vector2i;
import ei.engine.scene.Entity;
import ei.game.gamestate.InGameState;
import ei.game.player.Player;
import ei.game.scene.SelectBox;
import ei.game.scene.units.Unit;
import ei.game.scene.weapons.Weapon;
public abstract class MapEntity extends Unit{
public MapEntity(int l, Vector2i pos, Player p) {
super(l, pos, p);
}
public void update() {
if(getLife()<=0) {
removeUnit();
}
}
protected void move(int x, int y, boolean b) {}
public void setSelected(boolean b) {}
public void setMouseOver(boolean b) {}
@Override
public float getVelocity() {
return 0;
}
@Override
public Weapon getWeapon(Vector2f startPos) {
return null;
}
@Override
public void destroyed() {
// TODO Auto-generated method stub
}
@Override
protected SelectBox getSelection() {
return null;
}
}

View file

@ -0,0 +1,35 @@
package ei.game.scene.map;
import ei.engine.math.Vector2f;
import ei.engine.math.Vector2i;
import ei.engine.scene.Entity;
import ei.engine.scene.Sprite;
import ei.game.player.Player;
public class Stone extends MapEntity{
private static final String[] img = {
"data/map/stone/stone0000.png",
"data/map/stone/stone0001.png",
"data/map/stone/stone0002.png",
"data/map/stone/stone0003.png",
"data/map/redstone/redstone0000.png",
"data/map/redstone/redstone0001.png",
"data/map/redstone/redstone0002.png",
"data/map/redstone/redstone0003.png"
};
private Sprite stone;
public Stone(Vector2i pos, Player p) {
super(10000, pos, p);
stone = new Sprite("Stone",img[(int)(Math.random()*img.length)]);
stone.setSize(new Vector2f(40,40));
getNode().add(stone);
}
@Override
public Entity getSprite() {
return stone;
}
}

View file

@ -17,7 +17,7 @@ public class APU extends Unit{
public APU(int x, int y, Player p){ public APU(int x, int y, Player p){
super(100, new Vector2i(x,y), p); super(100, new Vector2i(x,y), p);
this.sprite = new Sprite("Tank", "data/units/apu/apu0000.png"); this.sprite = new Sprite("APU", "data/units/apu/apu0000.png");
sprite.setSize(new Vector2f(40,40)); sprite.setSize(new Vector2f(40,40));
getNode().add(sprite); getNode().add(sprite);

View file

@ -17,7 +17,7 @@ public class Bomber extends Unit{
public Bomber(int x, int y, Player p){ public Bomber(int x, int y, Player p){
super(200, new Vector2i(x,y), p); super(200, new Vector2i(x,y), p);
this.sprite = new Sprite("Tank", "data/units/bomber/bomber0000.png"); this.sprite = new Sprite("Bomber", "data/units/bomber/bomber0000.png");
sprite.setSize(new Vector2f(50,60)); sprite.setSize(new Vector2f(50,60));
getNode().add(sprite); getNode().add(sprite);

View file

@ -43,7 +43,7 @@ public abstract class Unit extends GameEntity{
*/ */
public Unit(int l, Vector2i pos, Player p) { public Unit(int l, Vector2i pos, Player p) {
super(l, p); super(l, p);
unitNode = new Node("unit"); unitNode = new Node("UnitNode");
unitNode.setLocation(Map.getPixelByPos(pos.getX(), pos.getY())); unitNode.setLocation(Map.getPixelByPos(pos.getX(), pos.getY()));
setPos(pos.getX(), pos.getY()); setPos(pos.getX(), pos.getY());
} }
@ -87,7 +87,6 @@ public abstract class Unit extends GameEntity{
} }
oldPos = new Vector2i(x, y); oldPos = new Vector2i(x, y);
InGameState.getMap().setPos(this, x, y); InGameState.getMap().setPos(this, x, y);
System.out.println(oldPos);
} }
@ -108,7 +107,7 @@ public abstract class Unit extends GameEntity{
* @param y The y pos to move to * @param y The y pos to move to
* @param b True to clear old orders else false * @param b True to clear old orders else false
*/ */
private void move(int x, int y, boolean b) { protected void move(int x, int y, boolean b) {
if(b){ if(b){
attack = null; attack = null;
} }
@ -133,15 +132,19 @@ public abstract class Unit extends GameEntity{
public abstract float getVelocity(); public abstract float getVelocity();
public void removeUnit(){
unitNode.remove(getSprite());
getPlayer().removeUnit(this);
InGameState.getMap().removePos(oldPos.getX(), oldPos.getY());
}
/** /**
* Updating the unit * Updating the unit
*/ */
public void update() { public void update() {
if(getLife()<=0) { if(getLife()<=0) {
unitNode.remove("Tank"); removeUnit();
getPlayer().removeUnit(this);
InGameState.getMap().removePos(oldPos.getX(), oldPos.getY());
} }
else if(moveTo != null) { else if(moveTo != null) {
Vector2i moveVect = new Vector2i((int)moveTo.getX(),(int)moveTo.getY()); Vector2i moveVect = new Vector2i((int)moveTo.getX(),(int)moveTo.getY());
@ -173,25 +176,25 @@ public abstract class Unit extends GameEntity{
//Diagonally. //Diagonally.
if(moveVect.getX() > oldVect.getX() && moveVect.getY() > oldVect.getY() if(moveVect.getX() > oldVect.getX() && moveVect.getY() > oldVect.getY()
&& moveXminus>=2 && moveYminus>=2) { && moveXminus>=2 && moveYminus>=2) {
unitNode.get("Tank").setRotation(new Vector3f(0, 0, -45)); getSprite().setRotation(new Vector3f(0, 0, -45));
} }
if(moveVect.getX() < oldVect.getX() && moveVect.getY() < oldVect.getY() if(moveVect.getX() < oldVect.getX() && moveVect.getY() < oldVect.getY()
&& moveXminus<=-2 && moveYminus<=-2) { && moveXminus<=-2 && moveYminus<=-2) {
unitNode.get("Tank").setRotation(new Vector3f(0, 0, 135)); getSprite().setRotation(new Vector3f(0, 0, 135));
} }
if(moveVect.getX() > oldVect.getX() && moveVect.getY() < oldVect.getY() if(moveVect.getX() > oldVect.getX() && moveVect.getY() < oldVect.getY()
&& moveXminus>=2 && moveYminus<=-2) { && moveXminus>=2 && moveYminus<=-2) {
unitNode.get("Tank").setRotation(new Vector3f(0, 0, -135)); getSprite().setRotation(new Vector3f(0, 0, -135));
} }
if(moveVect.getX() < oldVect.getX() && moveVect.getY() > oldVect.getY() if(moveVect.getX() < oldVect.getX() && moveVect.getY() > oldVect.getY()
&& moveXminus<=-2 && moveYminus>=2) { && moveXminus<=-2 && moveYminus>=2) {
unitNode.get("Tank").setRotation(new Vector3f(0, 0, 45)); getSprite().setRotation(new Vector3f(0, 0, 45));
} }
//System.out.println(unitNode.get("Tank").getRotation()); //System.out.println(getSprite().getRotation());
//The moving is done here. //The moving is done here.