From b58aa91eea0c32e42760237550bd05090ed43874 Mon Sep 17 00:00:00 2001 From: unknown <45179536+r3cp3ct@users.noreply.github.com> Date: Sat, 11 Jun 2022 13:25:30 +0300 Subject: [PATCH] Falling slopes work in progress Co-authored-by: r3cp3ct <45179536+r3cp3ct@users.noreply.github.com> Co-authored-by: sigonasr2 --- maps/world1.map | Bin 295488 -> 295488 bytes sprites/tiles.gif | Bin 1136 -> 1100 bytes src/sig/objects/Player.java | 32 +++++++++++++++++++++++--------- 3 files changed, 23 insertions(+), 9 deletions(-) diff --git a/maps/world1.map b/maps/world1.map index 19829beffda632ab13fdcec9c0ebecd00d1173fd..27d8a4803ad4b4d9f55e470e5ef0a74afcbe4e17 100644 GIT binary patch delta 355 zcmX@mB6OfdXoIxGW`lxf%<_y33=CWh+&~f;a4>K(FoMJ?jko+0!A1 zd9r+t(qv@?IY#!4f{&Re+pEYhGcvGG6qMbZsPc#z!WLy@+Z?0ul35fegKR38%{KjD z1Ivev3RjsX%NuA2qAP((pJ$rPZ^JQJ-b9NRSqV(~CQ!G94kt_sCVU#C%Z?Q!3=_Hw zROz6?$^i5a<77D%#f=KvfSz!1*eqYLfq62&ht+0xhilB6<$VlT*g=5-RJd6{;3QB@ zfXHM;7qyKF$AIhzh3OX>SRQUv_zyHLMrE?T3Wk89;!IfsuiIa)5#4WceJS$@Vf~oB28Nn1LLn z$;t|Hn+*z{067{`lkF3fHYch)VxFw2A~8{cZF8aqP(oWpY@@;vpaKJp&Hf&jm?uk` z7);hz5rPO>=xm-VlfpbvApvNg-RAi+NkDeNWO)ab$@(&Eo4q}*Fi)0saoVV`0q7tP zE3m+3Ssx>o=@%MU9&S{4&oo&+zyOI8p)lD#KmbV~Mg`;?kZsNK3GMO;j6lo;#LU~} I6Ic|L018P@9RL6T diff --git a/sprites/tiles.gif b/sprites/tiles.gif index 2b6289eccc09d5fe555fb3ea6bc3e9b8277b8d4b..80389b6649d3ddd52ea93a1a2737f58d172a7520 100644 GIT binary patch delta 540 zcmV+%0^|Mg2+RnuJOY1a)dUH`3I+<;Dd56`69)vGAu!>_2^uS&+>J3A$1x*AzD&6@ zF3V*wht#~8vuDqs&4`Xjy0q!jiBq3hy?AzO$*{x9MngN^ZP%f5AKjg%_qpG|g9{&x zT#fO{&YM49E{(XK>ByQVS4|zA^*`8+Y2VJhd-d_)^P&I#+B|<9_Kd>6Uj!ew`zrP0 zdykL4efRvB$cJBm{rQ(0fSCvgLV=etXdi3{mLi~o+*pMKsaD2)g!>o1?=1}yNv1Q%@Z!3Za;@WKo??C`@7M=bHg6jyBV#TaL- e@x~l??C})GAcrjS$Rw9+^2sQtta4aE0028dITJwu delta 576 zcmV-G0>Ayt2=EB7JOY2_kH3He3m!}uaDoJd6DwZKxUu8MKMq57d|2}2%a}7iKAZuu zX2J_~hYdfMfQZ zySDM?ijkvHetbG};?T4Im7a$B=I+BE;b{eiXY-vUyRt~M`MjPW{2ZA@a@QBkK_rNV{|zhi6VMN z0;wO6O)jZllk9&`N9B+G1xIB)%58~dmd9<`5O89C2_}7!EzdWFv0T52r!Ha2Xk$*4OjWFcAI9b zF{cQ3?D06qAcrjS$Rw9+^2sQttn$h%x9sxEFvl$O%rw_*^UXNttn0){ + if(y_velocity>0 && state!=State.SLIDE){ state = State.FALLING; } if (!sideCollision) { @@ -442,8 +441,22 @@ public class Player extends AnimatedObject{ } } else { if (!sideCollision) { + Tile checked_tile_bottom_center = RabiClone.CURRENT_MAP.getTile((int)(getX())/Tile.TILE_WIDTH, (int)(getY()+getAnimatedSpr().getHeight()/2)/Tile.TILE_HEIGHT); handleKeyboardMovement(updateMult, right-left, horizontal_friction, horizontal_drag); this.setX(this.getX()+displacement_x); + if(displacement_x>0){ + if(checked_tile_bottom_center==Tile.SMALL_SLOPE_RIGHT){ + setY(getY()+displacement_x); + System.out.println("We're in RIGHT."); + } + } + else{ + if(checked_tile_bottom_center==Tile.SMALL_SLOPE_LEFT){ + setY(getY()-displacement_x); + System.out.println("We're in it for LEFT."); + + } + } } } } @@ -452,16 +465,16 @@ public class Player extends AnimatedObject{ private double ySlopeCollisionPoint(Tile tile) { switch(tile){ case BIG_SLOPE_LEFT1: - return 0; + return -(getX()%Tile.TILE_WIDTH/2)+(int)(getY()+getAnimatedSpr().getHeight()/2)/Tile.TILE_HEIGHT*Tile.TILE_HEIGHT+(getAnimatedSpr().getHeight()/2-4); case BIG_SLOPE_LEFT2: - return 0; + return -(getX()%Tile.TILE_WIDTH/2)+(int)(getY()+getAnimatedSpr().getHeight()/2)/Tile.TILE_HEIGHT*Tile.TILE_HEIGHT+(getAnimatedSpr().getHeight()/2-4)-Tile.TILE_WIDTH/2; case BIG_SLOPE_RIGHT1: - return 0; + return (getX()%Tile.TILE_WIDTH/2)+(int)(getY()+getAnimatedSpr().getHeight()/2)/Tile.TILE_HEIGHT*Tile.TILE_HEIGHT+(getAnimatedSpr().getHeight()/2-4)-Tile.TILE_WIDTH; case BIG_SLOPE_RIGHT2: - return 0; + return (getX()%Tile.TILE_WIDTH/2)+(int)(getY()+getAnimatedSpr().getHeight()/2)/Tile.TILE_HEIGHT*Tile.TILE_HEIGHT+(getAnimatedSpr().getHeight()/2-4)-Tile.TILE_WIDTH+Tile.TILE_WIDTH/2; case SMALL_SLOPE_LEFT: return -(getX()%Tile.TILE_WIDTH)+(int)(getY()+getAnimatedSpr().getHeight()/2)/Tile.TILE_HEIGHT*Tile.TILE_HEIGHT+(getAnimatedSpr().getHeight()/2-4); @@ -477,7 +490,6 @@ public class Player extends AnimatedObject{ setY(ySlopeCollisionPoint(checked_tile_bottom_center)); } - private boolean groundCollision(double check_distance_y) { boolean collisionOccured; setY((getY()-check_distance_y)); @@ -485,7 +497,9 @@ public class Player extends AnimatedObject{ y_velocity = 0; groundCollision=true; collisionOccured=true; - state = State.IDLE; + if(state!=State.SLIDE){ + state = State.IDLE; + } return collisionOccured; }