diff --git a/src/components/game/map/partials/PlacedMapObject.vue b/src/components/game/map/partials/PlacedMapObject.vue index c5c2ac8..42b4622 100644 --- a/src/components/game/map/partials/PlacedMapObject.vue +++ b/src/components/game/map/partials/PlacedMapObject.vue @@ -35,8 +35,6 @@ const imageProps = computed(() => ({ originY: props.placedMapObject.mapObject.originY })) -// ... existing code ... - function calculateObjectPlacement(mapObj: PlacedMapObject) : {x: number; y: number} { let position = tileToWorldXY(props.tileMapLayer, mapObj.positionX, mapObj.positionY) @@ -46,8 +44,6 @@ function calculateObjectPlacement(mapObj: PlacedMapObject) : {x: number; y: numb } } -// ... existing code ... - onMounted(async () => { await loadTexture(scene, { key: props.placedMapObject.mapObject.id, diff --git a/src/composables/mapComposable.ts b/src/composables/mapComposable.ts index f42dbe0..6b58b71 100644 --- a/src/composables/mapComposable.ts +++ b/src/composables/mapComposable.ts @@ -68,11 +68,11 @@ export function createTileArray(width: number, height: number, tile: string = 'b } export const calculateIsometricDepth = (positionX: number, positionY: number, width: number = 0, height: number = 0, isCharacter: boolean = false) => { - const baseDepth = Math.max(positionX, positionY) + const baseDepth = (positionX + positionY) * 1000 if (isCharacter) { - return baseDepth // @TODO: Fix collision, this is a hack + return baseDepth + 500 // Characters should always be above objects at the same position } - return (baseDepth + height) / (config.tile_size.width * 2) + return baseDepth + (width + height) / 4 } async function getTiles(tiles: TileT[], scene: Phaser.Scene) {