Friday, August 9, 2013

[MMc] Panning and Zooming

Pan and zoom work on the world map and in ship windows.  I had to add some extra hooks to G3D to support processing mouse events directly on a GuiWindow.  Usually we process events on GuiControls instead, so this case had never occured before.

  1. Build GUI infrastructure for popup ship windows (equivalent to the main view in a traditional RTS)
    1. Window render
    2. Window draw
    3. Window resize
    4. Window close
    5. Zoom control
  2. Ship View inside the popup windows
    1. Draw ships (with zoom and pan)
    2. Show modules as plain hexagons
    3. Right-mouse pans view inside of a window
    4. Find the module under a mouse
    5. Draw module icons
  3. Draw main view that shows a "realistic" universe (equivalent to a minimap in a traditional RTS)
    1. Integrate starfield prototype
    2. Overlay GUI
    3. Show ships
    4. Show free modules
    5. Draw paths
  4. Main view interaction
    1. Zoom control
    2. Right mouse pans
    3. Support selection of ships
    4. Provide waypoint GUI
    5. Warp-drive
  5. Modules & interaction
    1. Make hexification symmetric
    2. Drag within ship
    3. Drag outside ship
    4. Drag inside ship
    5. Click to activate module
    6. Target modules in other ships
  6. Simulation
    1. Compute dynamic commodities, e.g., heat, power, etc.
    2. Simulate attacks
    3. Trading (needs more GUI)
  7. Polish graphics
    1. Starfield background pan and zoom
    2. Per-user color
    3. GUI stylization: bloom, noise, ripple on hit
    4. Re-coloring of ships
    5. Clip module view to the actual window bounds
  8. Polish UI
    1. Clip the mouse to the window when panning, or hide the mouse and allow it to go outside

No comments:

Post a Comment