From 9e9addad538113058cd57e02583be4499646e558 Mon Sep 17 00:00:00 2001 From: sigonasr2 Date: Sat, 11 Jun 2022 19:02:58 -0500 Subject: [PATCH] side collision tests Co-authored-by: r3cp3ct <45179536+r3cp3ct@users.noreply.github.com> Co-authored-by: sigonasr2 --- maps/world1.map | Bin 295488 -> 295488 bytes src/sig/objects/LevelRenderer.java | 15 +------ src/sig/objects/Player.java | 68 +++++------------------------ 3 files changed, 11 insertions(+), 72 deletions(-) diff --git a/maps/world1.map b/maps/world1.map index c9d48aa825bec24397977b4565a277de4a7d2c94..80445bb7179b78f0e7a120e896ea28ec95f8c261 100644 GIT binary patch delta 87 zcmX@mB6OfdXalbZKO+MOFajY6Fi%%#U}@Z_kitBf--c(hwhYf^Z;va?6BR_*K?=AS gxF<`gC{LEp5oxxUX}6bQ1Y#y2X5MZu!@`&b03}}%g8%>k delta 91 zcmX@mB6OfdXalbZKLY~`5W)cSbcF_%#*GRo%!}m^eFj*+g!NAGD2oi5r VkZD(tVFY3(AZFgKAj6`N1^{~;45=0&&xpos=0&&yposMap.MAP_HEIGHT) { continue; @@ -92,7 +79,7 @@ public class LevelRenderer extends Object{ Draw_Text(4,4,new String(RabiClone.player.x_velocity),Font.PROFONT_12); Draw_Text(4,4+Font.PROFONT_12.getGlyphHeight(),new String(RabiClone.player.slide_time3),Font.PROFONT_12); } - RenderCollisionGrid(p); + //RenderCollisionGrid(p); } private void RenderCollisionGrid(byte[] p) { diff --git a/src/sig/objects/Player.java b/src/sig/objects/Player.java index 7b91c96..2367437 100644 --- a/src/sig/objects/Player.java +++ b/src/sig/objects/Player.java @@ -362,70 +362,22 @@ public class Player extends AnimatedObject implements CollisionEntity { double displacement_x = x_velocity*updateMult; boolean sideCollision = false; - for(int i=0;i<4;i++){ - double check_distance_x = (displacement_x/4)*(i+1); - Tile checked_tile_top_right = RabiClone.CURRENT_MAP.getTile((int)(getX()+getAnimatedSpr().getWidth()/2-4+check_distance_x)/Tile.TILE_WIDTH, (int)(getY()+getAnimatedSpr().getHeight()/2)/Tile.TILE_HEIGHT); - Tile checked_tile_top_left = RabiClone.CURRENT_MAP.getTile((int)(getX()-getAnimatedSpr().getWidth()/2+4+check_distance_x)/Tile.TILE_WIDTH, (int)(getY()+getAnimatedSpr().getHeight()/2)/Tile.TILE_HEIGHT); - Tile checked_tile_bottom_center = RabiClone.CURRENT_MAP.getTile((int)(getX())/Tile.TILE_WIDTH, (int)(getY()+getAnimatedSpr().getHeight()/2)/Tile.TILE_HEIGHT); - - if(checked_tile_top_right.getCollision()==CollisionType.BLOCK||checked_tile_top_left.getCollision()==CollisionType.BLOCK){ - //System.out.println(checked_tile_top_right.getCollision()+"//"+checked_tile_top_left.getCollision()); - if(checked_tile_bottom_center.getCollision()==CollisionType.SLOPE){ - } else { - if (checked_tile_top_right.getCollision()==CollisionType.BLOCK) { - setX(((int)(getX()-getAnimatedSpr().getWidth()/2)/Tile.TILE_WIDTH)*Tile.TILE_WIDTH+Tile.TILE_WIDTH/2+3+check_distance_x); - } else { - setX(((int)(getX()+getAnimatedSpr().getWidth())/Tile.TILE_WIDTH)*Tile.TILE_WIDTH-Tile.TILE_WIDTH/2-3+check_distance_x); - } + double startingX=getX(); + if (displacement_x>0) { + for (int x=(int)getX();xySlopeCollisionPoint(checked_tile_bottom_center)) - { - moveUpSlope(checked_tile_bottom_center); - collisionOccured = groundCollision(0); - break; - } - //System.out.println((int)getX()/Tile.TILE_WIDTH); - if(checked_tile_bottom_right.getCollision()==CollisionType.BLOCK||checked_tile_bottom_left.getCollision()==CollisionType.BLOCK){ - collisionOccured = groundCollision(check_distance_y); - break; - } - } - if (!collisionOccured) { - groundCollision=false; - } - } + groundCollision=true; if (!groundCollision){ this.setY(this.getY()+displacement_y); y_acceleration = GRAVITY;