diff --git a/maps/world1.map b/maps/world1.map index 67eddc0..fc71cb1 100644 Binary files a/maps/world1.map and b/maps/world1.map differ diff --git a/src/sig/objects/LevelRenderer.java b/src/sig/objects/LevelRenderer.java index 49986cd..ce6cc05 100644 --- a/src/sig/objects/LevelRenderer.java +++ b/src/sig/objects/LevelRenderer.java @@ -46,7 +46,7 @@ public class LevelRenderer extends Object{ * @param object */ protected void Draw_Object(Object object) { - super.Draw_Sprite(Math.round(object.getX()-this.getX()-object.getSprite().getWidth()/2), Math.round(object.getY()-this.getY()-object.getSprite().getHeight()/2), object.getSprite()); + super.Draw_Sprite(object.getX()-this.getX()-object.getSprite().getWidth()/2, Math.round(object.getY()-this.getY()-object.getSprite().getHeight()/2), object.getSprite()); } private void DrawTile(double x, double y, Tile tile) { diff --git a/src/sig/objects/Player.java b/src/sig/objects/Player.java index 6f648d2..9346058 100644 --- a/src/sig/objects/Player.java +++ b/src/sig/objects/Player.java @@ -5,6 +5,7 @@ import sig.engine.Object; import sig.engine.Panel; import sig.engine.Sprite; import sig.map.CollisionType; +import sig.map.Map; import sig.map.Tile; import sig.map.View; @@ -33,6 +34,9 @@ public class Player extends Object{ int maxJumpCount=1; int jumpCount=maxJumpCount; + final double viewBoundaryX=RabiClone.BASE_WIDTH/3; + final double viewBoundaryY=RabiClone.BASE_HEIGHT/3; + public Player(Panel panel) { super(panel); this.setSprite(Sprite.NANA_SMALL); @@ -55,8 +59,20 @@ public class Player extends Object{ RabiClone.level_renderer.setY(getY()-RabiClone.BASE_HEIGHT/2); break; case FIXED: + RabiClone.level_renderer.setX((tileX/Tile.TILE_SCREEN_COUNT_X)*Map.MAP_WIDTH); + RabiClone.level_renderer.setY((tileY/Tile.TILE_SCREEN_COUNT_Y)*Map.MAP_HEIGHT); break; case LIGHT_FOLLOW: + if (getX()-RabiClone.level_renderer.getX()RabiClone.BASE_WIDTH-viewBoundaryX) { + RabiClone.level_renderer.setX(getX()-(RabiClone.BASE_WIDTH-viewBoundaryX)); + } + if (getY()-RabiClone.level_renderer.getY()RabiClone.BASE_HEIGHT-viewBoundaryY) { + RabiClone.level_renderer.setY(getY()-(RabiClone.BASE_HEIGHT-viewBoundaryY)); + } break; case LIGHT_HORIZONTAL_FOLLOW: break;