diff --git a/src/GamePanel.java b/src/GamePanel.java index a9e68c6..51d29ed 100644 --- a/src/GamePanel.java +++ b/src/GamePanel.java @@ -223,9 +223,9 @@ public class GamePanel extends JPanel implements Runnable, KeyListener{ } else { filePath = "img/tiles/boxes/redSteel.png"; } - double x = ((player.mouseX-(Tile.length/2)) / Tile.length)*Tile.length + (camera.x/Tile.length)*Tile.length; + int x = (player.mouseX + camera.x + GAME_WIDTH / 2) / Tile.length; double y = ((player.mouseY / Tile.length))*Tile.length; - g.drawImage(getImage(filePath),(int)x-camera.x+Tile.length/2+1,(int)y,Tile.length,Tile.length,null); + g.drawImage(getImage(filePath),x*Tile.length - (GamePanel.GAME_WIDTH/2)-camera.x,(int)y,Tile.length,Tile.length,null); } // g.drawString(camera.x+" "+((camera.x+GAME_WIDTH)/Tile.length)+" "+player.leftMouseDown,100,100); diff --git a/src/MapReader.java b/src/MapReader.java index 0c82583..6cfa628 100644 --- a/src/MapReader.java +++ b/src/MapReader.java @@ -87,6 +87,7 @@ public class MapReader { } else if(file.charAt(i)=='v'){ newTile("img/tiles/background/wall.png"); GamePanel.map[x][y].collision = false; + GamePanel.map[x][y].replaceAble = true; } else if(file.charAt(i)=='l'){ newTile("img/tiles/terrain/lava.png"); GamePanel.map[x][y].nonBombCollide = true; diff --git a/src/Player.java b/src/Player.java index b4a3f6a..e11778f 100644 --- a/src/Player.java +++ b/src/Player.java @@ -15,6 +15,8 @@ public class Player extends GenericSprite { public final int SPEED = 5; public static final int PLAYER_WIDTH = 52; public static final int PLAYER_HEIGHT = 94; + + public static final int steelReachRange = 3*Tile.length; public int lastXDirection, lastYDirection, lastFrame; public int upKey, downKey, rightKey, leftKey; @@ -214,6 +216,7 @@ public class Player extends GenericSprite { LevelManager.setLevel(LevelManager.level); GamePanel.camera.x = LevelManager.xSpawn; y = LevelManager.ySpawn; + holdingSteel = false; } public void mousePressed(MouseEvent e) throws SpriteException, IOException { @@ -228,12 +231,23 @@ public class Player extends GenericSprite { rightMouseDown = true; if (!holdingSteel) { if (GamePanel.map[x][y] != null&&GamePanel.map[x][y].movable) { - holdingSteel = true; - GamePanel.map[x][y] = null; + double xDis = (this.x+WIDTH/2) - (GamePanel.map[x][y].realX+Tile.length/2); + double yDis = (this.y+HEIGHT/2) - (GamePanel.map[x][y].y+Tile.length/2); + double hypo = Math.sqrt(xDis*xDis+yDis*yDis); + if(hypo