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 () { function moveLeft (speed) {
player.move(-PLAYER_SPEED, 0) player.move(-speed, 0)
if (player.pos.x < 0) { if (player.pos.x < 0) {
player.pos.x = k.width() player.pos.x = 0
} }
} }
function moveRight () { function moveRight (speed) {
player.move(PLAYER_SPEED, 0) player.move(speed, 0)
if (player.pos.x > k.width()) { 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(() => { 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 } }) const closestEnemy = k.get('enemy').reduce((prev, enemy) => { return enemy?.pos.y > prev?.pos.y ? enemy : prev }, { pos: { y: 0 } })
if (closestEnemy?.pos?.x) { 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) { if (closestEnemy.pos.x > player.pos.x + tolerance) {
moveRight() moveRight(speed)
} else if (closestEnemy.pos.x < player.pos.x - tolerance) { } else if (closestEnemy.pos.x < player.pos.x - tolerance) {
moveLeft() moveLeft(speed)
} }
} }
}) })