Loosen dino/cactus collision hitbox for more forgiving jumps
This commit is contained in:
1 parent
df8aef978e
commit
8ed0b4e28f
1 file changed
+5
-3
@@ -190,11 +190,13 @@ bool DinoActivity::anyNonPowerPressed() const {
|
|||||||
|
|
||||||
bool DinoActivity::checkCollision() const {
|
bool DinoActivity::checkCollision() const {
|
||||||
constexpr int INSET = 4;
|
constexpr int INSET = 4;
|
||||||
|
constexpr int FRONT_INSET = 10;
|
||||||
|
constexpr int OBSTACLE_INSET_X = 10;
|
||||||
|
|
||||||
int dw = (DINO_GRID_W - DINO_COLLIDE_X_OFFSET) * BLOCK;
|
int dw = (DINO_GRID_W - DINO_COLLIDE_X_OFFSET) * BLOCK;
|
||||||
int dh = DINO_GRID_H * BLOCK;
|
int dh = DINO_GRID_H * BLOCK;
|
||||||
int dx0 = DINO_X + DINO_COLLIDE_X_OFFSET * BLOCK + INSET;
|
int dx0 = DINO_X + DINO_COLLIDE_X_OFFSET * BLOCK + INSET;
|
||||||
int dx1 = DINO_X + DINO_COLLIDE_X_OFFSET * BLOCK + dw - INSET;
|
int dx1 = DINO_X + DINO_COLLIDE_X_OFFSET * BLOCK + dw - FRONT_INSET;
|
||||||
int dy0 = groundY_ - dh + (int)dinoY_ + INSET;
|
int dy0 = groundY_ - dh + (int)dinoY_ + INSET;
|
||||||
int dy1 = groundY_ + (int)dinoY_ - INSET;
|
int dy1 = groundY_ + (int)dinoY_ - INSET;
|
||||||
|
|
||||||
@@ -205,8 +207,8 @@ bool DinoActivity::checkCollision() const {
|
|||||||
int oh = obstacleHeightPx(ob.type);
|
int oh = obstacleHeightPx(ob.type);
|
||||||
int oy0 = groundY_ - oh;
|
int oy0 = groundY_ - oh;
|
||||||
int oy1 = oy0 + oh;
|
int oy1 = oy0 + oh;
|
||||||
int ox0 = (int)ob.x;
|
int ox0 = (int)ob.x + OBSTACLE_INSET_X;
|
||||||
int ox1 = ox0 + ow;
|
int ox1 = (int)ob.x + ow - OBSTACLE_INSET_X;
|
||||||
|
|
||||||
if (dx0 < ox1 && dx1 > ox0 && dy0 < oy1 && dy1 > oy0) {
|
if (dx0 < ox1 && dx1 > ox0 && dy0 < oy1 && dy1 > oy0) {
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
Reference in new issue
Block a user