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

108 lines
2.2 KiB
Java
Raw Normal View History

package ei.game.scene;
2007-04-04 16:00:09 +00:00
import ei.engine.math.Vector2i;
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);
2007-04-04 17:32:54 +00:00
s.getTexture().setWidth(POS_SIZE);
s.getTexture().setHeight(POS_SIZE);
mapNode.add(s);
}
}
}
2007-04-04 16:00:09 +00:00
public Vector2i getPosByPixel(float x, float y){
System.out.println("DOWN: "+x+"-"+y);
x = x/POS_SIZE;
y = y/POS_SIZE;
System.out.println("DOWN: "+x+"-"+y);
return new Vector2i((int)x,(int)y);
}
public Vector2i getPixelByPos(int x, int y){
2007-04-04 17:32:54 +00:00
x = (int)(POS_SIZE*x*1.2f);
y = (int)(POS_SIZE*y*1.2f);
2007-04-04 16:00:09 +00:00
return new Vector2i((int)x,(int)y);
}
/**
* 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;
}
}