feat(character): restrict jumping to when on a platform
Change the jump() condition from checking velocity to detecting whether the character's feet are touching a platform. This prevents mid-air jumps and makes jump behavior more intuitive for platformer gameplay.
This commit is contained in:
8
README.md
Normal file
8
README.md
Normal file
@@ -0,0 +1,8 @@
|
||||
## How to run
|
||||
|
||||
Simply run:
|
||||
```python
|
||||
python3 -m http.server 8081
|
||||
```
|
||||
|
||||
Inside of the project's cloned folder
|
||||
15
character.js
15
character.js
@@ -10,7 +10,20 @@ var c = {
|
||||
size: 50,
|
||||
img: null,
|
||||
jump() {
|
||||
if ( this.velocity <= 0.15 ) {
|
||||
const feet = this.pos.y + this.size;
|
||||
|
||||
const onPlatform = getPlatforms().some(p => {
|
||||
const overlapsX =
|
||||
this.pos.x + this.size > p.position.x &&
|
||||
this.pos.x < p.position.x + p.size.x;
|
||||
|
||||
const touchesTop =
|
||||
Math.abs(feet - p.position.y) < 2;
|
||||
|
||||
return overlapsX && touchesTop;
|
||||
});
|
||||
|
||||
if (onPlatform) {
|
||||
this.velocity.y = -5;
|
||||
}
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user