Skip to content

Godot: cámara (zoom, pan, edge scroll, centrar unidad) #44

Description

@leocagli

Objetivo

Implementar la cámara 2D con zoom, paneo por arrastre, scroll por bordes, teclas WASD y centrado en unidades, acotada a los límites del mapa.

Alcance

  • Camera2D con límites (left/top/right/bottom) ajustados al tamaño del mapa generado
  • Zoom: rueda del ratón entre 0.3× y 2.0×, con suavizado
  • Paneo: clic central/arrastre derecho + teclas WASD
  • Edge scroll: el cursor a ≤20 px del borde de la ventana mueve la cámara
  • Space: centrar en la siguiente unidad sin órdenes (ciclo)
  • Animación suave de centrado (tween) al centrar en unidad o ciudad

Skill de referencia

/godot-camera-systems

Tareas

  • GameCamera.gd extendiendo Camera2D: implementar zoom con interpolación
  • Paneo por arrastre: capturar InputEventMouseMotion con botón medio/derecho
  • Paneo WASD: _process() con Input.get_axis y velocidad escalada con zoom
  • Edge scroll: comparar get_viewport().get_mouse_position() con tamaño de viewport
  • cycle_unit_without_orders(): lista de unidades sin acción, centrado con create_tween()
  • Limitar posición a Rect2(map_origin, map_size) en cada frame

Aceptación

La cámara no sale de los bordes del mapa, el zoom es fluido entre 0.3× y 2.0×, y Space centra en cada unidad sin orden de manera secuencial con animación suave.

Metadata

Metadata

Assignees

No one assigned

    Labels

    civ-visualVisual estilo Civilization / 4XgodotPort a Godot 4

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions