improve position fixing

This commit is contained in:
2025-01-11 18:17:44 +09:00
parent f1c191f61f
commit 4aba510ec0
8 changed files with 117 additions and 34 deletions
+46 -1
View File
@@ -43,6 +43,7 @@ global.renderer = renderer
global.camera = camera
global.scene = scene
const keysDown = {}
function render() {
@@ -54,8 +55,52 @@ function minimapRender() {
minimapRenderer.render(scene, minimapCamera)
}
const cameraSpeed = 0.1
var cameraLocked = true
function followCamera() {
// entity = entities.filter((e) => e.id = '1').at(0)
const entity = entities['1']
if (entity == null) { return }
const offsetX = 0
const offsetY = -15
const distanceX = Math.abs((entity.position.x + offsetX) - camera.position.x)
const distanceY = Math.abs((entity.position.y + offsetY) - camera.position.y)
if (distanceX > 0.01) {
if (entity.position.x + offsetX > camera.position.x) {
camera.position.x += cameraSpeed * distanceX
}
if (entity.position.x + offsetX < camera.position.x) {
camera.position.x -= cameraSpeed * distanceX
}
}
else if (distanceX != 0) {
camera.position.x = entity.position.x + offsetX
}
if (distanceY > 0.01) {
if (entity.position.y + offsetY > camera.position.y) {
camera.position.y += cameraSpeed * distanceY
}
if (entity.position.y + offsetY < camera.position.y) {
camera.position.y -= cameraSpeed * distanceY
}
}
else if (distanceY != 0) {
camera.position.y = entity.position.y + offsetY
}
}
const cameraSpeed = 0.03
function cameraMovement() {
if (cameraLocked) {
followCamera()
return
}
if (keysDown.ArrowLeft) { camera.position.x -= cameraSpeed }
else if (keysDown.ArrowRight) { camera.position.x += cameraSpeed }