93 lines
1.8 KiB
Java
93 lines
1.8 KiB
Java
|
|
package ei.game.scene;
|
||
|
|
|
||
|
|
import ei.engine.math.Vector3f;
|
||
|
|
import ei.engine.scene.Node;
|
||
|
|
import ei.engine.scene.Sprite;
|
||
|
|
|
||
|
|
public class Map {
|
||
|
|
private static final int POS_SIZE = 50;
|
||
|
|
private int width;
|
||
|
|
private int hight;
|
||
|
|
private GameEntity[][] map;
|
||
|
|
private Node mapNode;
|
||
|
|
|
||
|
|
public Map(int w, int h){
|
||
|
|
this.width = w;
|
||
|
|
this.hight = h;
|
||
|
|
init();
|
||
|
|
}
|
||
|
|
|
||
|
|
private void init(){
|
||
|
|
map = new GameEntity[width][hight];
|
||
|
|
|
||
|
|
// init textures
|
||
|
|
mapNode = new Node("MapNode");
|
||
|
|
for(int i=0; i<width ;i++){
|
||
|
|
for(int j=0; j<hight ;j++){
|
||
|
|
Sprite s = new Sprite("MapPos("+i+","+j+")","data/map/sand.jpg");
|
||
|
|
s.setLocation(new Vector3f(i*POS_SIZE,j*POS_SIZE,0));
|
||
|
|
s.getTexture().setTextureWidth(POS_SIZE+1.2f);
|
||
|
|
s.getTexture().setTextureHeight(POS_SIZE+1.2f);
|
||
|
|
s.getTexture().setWidth(POS_SIZE+1);
|
||
|
|
s.getTexture().setHeight(POS_SIZE+1);
|
||
|
|
mapNode.add(s);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Returns if the pos inthe map is empty
|
||
|
|
*
|
||
|
|
* @param x The x pos
|
||
|
|
* @param y The y pos
|
||
|
|
* @return True if empty else false
|
||
|
|
*/
|
||
|
|
public boolean isPosEmpty(int x, int y){
|
||
|
|
if(map[x][y] != null){
|
||
|
|
return true;
|
||
|
|
}
|
||
|
|
return false;
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Returns the object at the pos
|
||
|
|
*
|
||
|
|
* @param x The x pos
|
||
|
|
* @param y The y pos
|
||
|
|
* @return The object in that pos
|
||
|
|
*/
|
||
|
|
public GameEntity getPos(int x, int y){
|
||
|
|
return map[x][y];
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Sets an object at the pos
|
||
|
|
*
|
||
|
|
* @param e The object
|
||
|
|
* @param x The x pos
|
||
|
|
* @param y The y pos
|
||
|
|
*/
|
||
|
|
public void setPos(GameEntity e, int x, int y){
|
||
|
|
map[x][y] = e;
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Removes a object from that pos
|
||
|
|
*
|
||
|
|
* @param x The x pos
|
||
|
|
* @param y The y pos
|
||
|
|
*/
|
||
|
|
public void removePos(int x, int y){
|
||
|
|
map[x][y] = null;
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Returns the map node
|
||
|
|
*
|
||
|
|
* @return The map node
|
||
|
|
*/
|
||
|
|
public Node getMapNode(){
|
||
|
|
return mapNode;
|
||
|
|
}
|
||
|
|
}
|