improves movement speed when approaching enemies

This commit is contained in:
Lars Berning 2022-02-20 21:55:46 +01:00
parent d8225999b0
commit 0308538066
No known key found for this signature in database
GPG Key ID: 028E73C9E1D8A0B3
1 changed files with 12 additions and 9 deletions

View File

@ -90,17 +90,17 @@ export default function StrokeFighterBattleScene (k, args) {
})
}
function moveLeft () {
player.move(-PLAYER_SPEED, 0)
function moveLeft (speed) {
player.move(-speed, 0)
if (player.pos.x < 0) {
player.pos.x = k.width()
player.pos.x = 0
}
}
function moveRight () {
player.move(PLAYER_SPEED, 0)
function moveRight (speed) {
player.move(speed, 0)
if (player.pos.x > k.width()) {
player.pos.x = 0
player.pos.x = k.width()
}
}
@ -135,13 +135,16 @@ export default function StrokeFighterBattleScene (k, args) {
})
player.onUpdate(() => {
const tolerance = 10
const tolerance = 5
const closestEnemy = k.get('enemy').reduce((prev, enemy) => { return enemy?.pos.y > prev?.pos.y ? enemy : prev }, { pos: { y: 0 } })
if (closestEnemy?.pos?.x) {
const distance = Math.abs(closestEnemy.pos.x - player.pos.x)
// slow down a bit if we are close to the enemy
const speed = distance < 100 ? distance / 100 * PLAYER_SPEED : PLAYER_SPEED
if (closestEnemy.pos.x > player.pos.x + tolerance) {
moveRight()
moveRight(speed)
} else if (closestEnemy.pos.x < player.pos.x - tolerance) {
moveLeft()
moveLeft(speed)
}
}
})