Changed input mode.

This commit is contained in:
retoor 2025-10-05 00:18:06 +02:00
parent 084fce0a9b
commit a547b6ede1
2 changed files with 15 additions and 8 deletions

View File

@ -16,7 +16,7 @@ export class GameRenderer {
this.hoveredTile = null; this.hoveredTile = null;
this.cameraPos = { x: 0, y: 50, z: 50 }; this.cameraPos = { x: 0, y: 50, z: 50 };
this.cameraZoom = 1; this.cameraZoom = 1; // Re-introduced for proper orthographic zoom
this.TILE_SIZE = 2; this.TILE_SIZE = 2;
this.VIEW_DISTANCE = 50; this.VIEW_DISTANCE = 50;
@ -242,15 +242,19 @@ export class GameRenderer {
} }
zoomCamera(delta) { zoomCamera(delta) {
this.cameraZoom = Math.max(0.5, Math.min(2, this.cameraZoom + delta)); // Adjust the zoom property. A positive delta (scroll up) increases zoom.
this.updateCameraPosition(); this.cameraZoom += delta;
// Clamp the zoom level to a reasonable range
this.cameraZoom = Math.max(0.5, Math.min(2.5, this.cameraZoom));
// Apply the zoom to the camera and update its projection matrix
this.camera.zoom = this.cameraZoom;
this.camera.updateProjectionMatrix();
} }
updateCameraPosition() { updateCameraPosition() {
this.camera.position.set( this.camera.position.set(
this.cameraPos.x, this.cameraPos.x, this.cameraPos.y, this.cameraPos.z
this.cameraPos.y * this.cameraZoom,
this.cameraPos.z * this.cameraZoom
); );
this.camera.lookAt(this.cameraPos.x, 0, this.cameraPos.z - 50); this.camera.lookAt(this.cameraPos.x, 0, this.cameraPos.z - 50);
} }

View File

@ -37,8 +37,6 @@ export class InputHandler {
if (this.app.isPlacingBuilding && this.app.selectedBuildingType) { if (this.app.isPlacingBuilding && this.app.selectedBuildingType) {
// Place building // Place building
this.app.placeBuilding(tile.x, tile.y); this.app.placeBuilding(tile.x, tile.y);
this.app.isPlacingBuilding = false;
this.app.selectedBuildingType = null;
} }
} }
} }
@ -46,6 +44,11 @@ export class InputHandler {
onMouseUp(event) { onMouseUp(event) {
if (event.button === 2) { // Right mouse button if (event.button === 2) { // Right mouse button
this.isRightMouseDown = false; this.isRightMouseDown = false;
// A right-click should cancel building placement mode
this.app.isPlacingBuilding = false;
this.app.selectedBuildingType = null;
this.canvas.style.cursor = 'default'; this.canvas.style.cursor = 'default';
// Check if click (not drag) // Check if click (not drag)