client/src/composables/useCameraControls.ts
2024-09-15 02:06:27 +02:00

29 lines
724 B
TypeScript

import { ref } from 'vue'
import { useGameStore } from '@/stores/game'
export function useCameraControls(scene: Phaser.Scene): any {
const gameStore = useGameStore()
const camera = ref(scene.cameras.main)
const isDragging = ref(false)
function onPointerDown(pointer: Phaser.Input.Pointer) {
if (pointer.event instanceof MouseEvent || pointer.event.shiftKey) {
isDragging.value = true
gameStore.setMovingCamera(true)
}
}
function onPointerUp() {
isDragging.value = false
gameStore.setMovingCamera(false)
}
scene.input.on(Phaser.Input.Events.POINTER_DOWN, onPointerDown)
scene.input.on(Phaser.Input.Events.POINTER_UP, onPointerUp)
return {
camera,
isDragging
}
}