1
0
forked from noxious/client

Walk improvement

This commit is contained in:
2025-02-06 13:46:21 +01:00
parent 2a2841cf16
commit 15b212160d
2 changed files with 19 additions and 13 deletions

View File

@ -1,3 +1,4 @@
import config from '@/application/config'
import { Direction } from '@/application/enums'
import { type MapCharacter } from '@/application/types'
import { calculateIsometricDepth, tileToWorldX, tileToWorldY } from '@/services/mapService'
@ -35,9 +36,10 @@ export function useCharacterSpriteComposable(scene: Phaser.Scene, tilemap: Phase
tween.value.stop()
}
const distance = Math.sqrt(Math.pow(newPositionX - currentPositionX.value, 2) + Math.pow(newPositionY - currentPositionY.value, 2))
const baseSpeed = 150 // pixels per second
const duration = (distance / baseSpeed) * 1000 // Convert to milliseconds
const tileDistance = Math.sqrt(Math.pow((newPositionX - currentPositionX.value) / config.tile_size.width, 2) + Math.pow((newPositionY - currentPositionY.value) / config.tile_size.height, 2))
const baseDuration = 300 // milliseconds per tile
const duration = Math.min(baseDuration * tileDistance, baseDuration)
tween.value = tilemap.scene.tweens.add({
targets: characterContainer.value,
@ -73,10 +75,13 @@ export function useCharacterSpriteComposable(scene: Phaser.Scene, tilemap: Phase
characterSprite.value!.setTexture(charTexture.value)
})
characterSprite.value.anims.play({
key: fullAnimationName,
repeat: loop ? -1 : 0
}, ignoreIfPlaying)
characterSprite.value.anims.play(
{
key: fullAnimationName,
repeat: loop ? -1 : 0
},
ignoreIfPlaying
)
}
const calcDirection = (oldPositionX: number, oldPositionY: number, newPositionX: number, newPositionY: number): Direction => {