29 lines
724 B
TypeScript
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
|
|
}
|
|
}
|