﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc	i_links	o_links
22	HUD - Heads Up Display	patrick	nobody	"A HUD (Heads up Display) shows health, munition status to the player. There can be more things like scanner/radar, infrared camera... The HUD is one of the most important parts of our game. It should ban  the player into the world of orxonox. This problem has got two sides:
 1. implementation
 2. design
It's very hard to design a fancy HUD, so before start doing it, be shure to check out everything on the inet you can find! Probably you will be wanting to co-work with a professional designer. There shall be more than one HUD with different desing, representing different ships. [[BR]]
The HUD consists of a core part, that can't be removed. The rest of the element on the HUD are so called HUDElements, that can be dynamicaly added/removed from the HUD. Therefore the HUD has a list of HUDElements at a given position on the HUD.


 * requirements:
   * design: very fancy :)
   * show health, shield, armor, energy, powerup status. -> there has to be a discussion about this topic (what will be an attribute of the orxonox-player)
   * a console that can be plugged in or out
   * a display to monitor the energy/powerup status or whatever is been used in orxonox to level up the player.
   * BONUS: each HUD should have two modes: minimal and normal - to show all informations or just a few
   * a interface to add/remove HUD-modules on the screen via simple functions (like add(Vector location, HUDElement component))

 * implementation:
   * HUD is a class, there can be one or more derivates, that will all have their own design
   * bind(WorldEntity entity) function to bind the HUD to, from then on, it will monitor the status of this entity
   * update() function, this will trigger the HUD to refresh all attributes (health, shields...)
   * draw() function, draws the HUD in front of everything
   * setVisible(bool bVisible) sets the HUD visible or invisible
   * setHUDMode(enum modus) selects the visibility-mode (minimal/optimal) (BONUS)
   * addComponent(HUDElement* el) adds a HUDElement to the screen at a given position
   * removeComponent(HUDElement* el) removes a HUDElement from the screen
   * hideComponent(HUDElement* el) this hides the element
   * showElement(HUDElement* el) this shows the element again

 * Webressources:
   * look at the HUD of [http://www.reptilelabour.com/software/chromium/ Chromium]
   * [http://www.resourcecode.de/showtopic.php?threadid=2162&highlight= a thread in a forum] on [http://www.resourcecode.de resourcecode.de]"	defect	new	minor	Old Orxonox tickets orx-v0	GraphicsEngine						
