Changeset 1406 for code/branches/network/src/orxonox/hud/HUD.cc
- Timestamp:
- May 24, 2008, 1:39:05 PM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
code/branches/network/src/orxonox/hud/HUD.cc
r1385 r1406 26 26 */ 27 27 28 28 #include <string.h> 29 29 #include "OrxonoxStableHeaders.h" 30 30 #include <OgreOverlay.h> 31 31 #include <OgreOverlayContainer.h> 32 32 #include <OgreOverlayManager.h> 33 #include <OgreSceneNode.h>34 #include <OgreEntity.h>35 33 #include <OgreStringConverter.h> 34 36 35 #include "core/Debug.h" 36 #include "core/ConsoleCommand.h" 37 37 #include "objects/SpaceShip.h" 38 #include "HUD.h"39 38 #include "BarOverlayElement.h" 40 39 #include "RadarOverlayElement.h" 41 40 #include "OverlayElementFactories.h" 41 #include "HUD.h" 42 42 43 43 namespace orxonox 44 44 { 45 ConsoleCommandShortcut(HUD, cycleNavigationFocus, AccessLevel::User); 46 45 47 using namespace Ogre; 46 48 47 HUD::HUD( int zoom){49 HUD::HUD(){ 48 50 om = &Ogre::OverlayManager::getSingleton(); 51 firstRadarObject = NULL; 52 lastRadarObject = NULL; 49 53 50 54 // create Factories … … 56 60 orxonoxHUD = om->create("Orxonox/HUD"); 57 61 container = static_cast<Ogre::OverlayContainer*>(om->createOverlayElement("Panel", "Orxonox/HUD/container")); 58 // test 59 test = static_cast<TextAreaOverlayElement*>(om->createOverlayElement("TextArea", "test123")); 60 test->show(); 61 test->setMetricsMode(Ogre::GMM_RELATIVE); 62 test->setDimensions(0.8, 0.8); 63 test->setPosition(0.02, 0.02); 64 test->setFontName("Console"); 65 test->setCaption("init"); 62 63 // creating text to display fps 64 fpsText = static_cast<TextAreaOverlayElement*>(om->createOverlayElement("TextArea", "fpsText")); 65 fpsText->show(); 66 fpsText->setMetricsMode(Ogre::GMM_PIXELS); 67 fpsText->setDimensions(0.001, 0.001); 68 fpsText->setPosition(10, 10); 69 fpsText->setFontName("Console"); 70 fpsText->setCharHeight(20); 71 fpsText->setCaption("init"); 66 72 67 73 // create energy bar … … 75 81 radar->show(); 76 82 83 // create Navigation 84 nav = new Navigation(container); 85 77 86 // set up screen-wide container 78 87 container->show(); … … 85 94 container->setHeight(1.0); 86 95 container->setMetricsMode(Ogre::GMM_RELATIVE); 87 container->addChild(test); 96 container->addChild(fpsText); 97 88 98 energyBar->init(0.01, 0.94, 0.4, container); 89 99 energyBar->setValue(1); 100 90 101 speedoBar->init(0.01, 0.90, 0.4, container); 102 91 103 radar->init(0.5, 0.9, 0.2, container); 92 radar->addObject(Vector3(1500.0, 0.0, 100.0)); 93 radar->addObject(Vector3(0.0, 4000.0, 0.0)); 94 radar->addObject(Vector3(0.0, 0.0, 6800.0)); 95 RadarOverlayElement::cycleFocus(); 104 addRadarObject(Vector3(2000.0, 0.0, 0.0)); 105 addRadarObject(Vector3(0.0, 2000.0, 0.0)); 106 addRadarObject(Vector3(0.0, 0.0, 2000.0)); 107 } 108 109 HUD::~HUD(){ 110 //todo: clean up objects 96 111 } 97 112 98 113 void HUD::tick(float dt) 99 114 { 100 int d = radar->getDist2Focus()/10;101 if(d) test->setCaption("Distance: " + Ogre::StringConverter::toString(d));102 else test->setCaption("");103 104 115 energyBar->resize(); 105 116 … … 113 124 radar->resize(); 114 125 radar->update(); 126 127 nav->update(); 115 128 } 116 129 117 HUD::~HUD(void){ 130 void HUD::addRadarObject(Vector3 pos){ 131 // check if this is the first RadarObject to create 132 if(firstRadarObject == NULL){ 133 firstRadarObject = new RadarObject(container, pos); 134 lastRadarObject = firstRadarObject; 135 } 136 else{ // if not, append to list 137 lastRadarObject->next = new RadarObject(container, pos); 138 lastRadarObject = lastRadarObject->next; 139 } 140 } 141 142 RadarObject* HUD::getFirstRadarObject(){ 143 return firstRadarObject; 144 } 145 146 /*static*/HUD& HUD::getSingleton(){ 147 static HUD theInstance; 148 return theInstance; 149 } 150 151 /*static*/void HUD::setFPS(float fps){ 152 HUD::getSingleton().fpsText->setCaption("FPS: " + Ogre::StringConverter::toString(fps)); 153 } 154 155 /*static*/void HUD::setEnergy(float value){ 156 HUD::getSingleton().energyBar->setValue(value); 157 } 158 159 /*static*/void HUD::cycleNavigationFocus(){ 160 HUD::getSingleton().nav->cycleFocus(); 118 161 } 119 162 }
Note: See TracChangeset
for help on using the changeset viewer.