evil-inside/src/ei/game/scene/Map.java

93 lines
1.8 KiB
Java
Raw Normal View History

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;
}
}