Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
Feb 3, 2006, 4:33:45 PM (18 years ago)
Author:
bensch
Message:

orxonox/trunk: Using TextEngine in the Menu

File:
1 copied

Legend:

Unmodified
Added
Removed
  • trunk/src/world_entities/elements/text_element.cc

    r7016 r7019  
    1616#define DEBUG_SPECIAL_MODULE DEBUG_MODULE_WEAPON
    1717
    18 #include "image_entity.h"
     18#include "text_element.h"
    1919
    2020#include "load_param.h"
     
    2222
    2323#include "graphics_engine.h"
    24 #include "material.h"
    25 #include "glincl.h"
    2624#include "state.h"
    2725
     
    3028
    3129
    32 CREATE_FACTORY(ImageEntity, CL_IMAGE_ENTITY);
     30CREATE_FACTORY(TextElement, CL_TEXT_ELEMENT);
    3331
    3432
     
    3634 * standart constructor
    3735 */
    38 ImageEntity::ImageEntity (const TiXmlElement* root)
     36TextElement::TextElement (const TiXmlElement* root)
    3937{
    40   this->init();
     38  this->setClassID(CL_TEXT_ELEMENT, "TextElement");
     39  this->setName("TextElement");
     40
     41  this->setLayer(E2D_LAYER_TOP);
     42  this->setSize(GraphicsEngine::getInstance()->getResolutionX()/10.0);
     43
     44  this->setSize(20);
     45  this->setFont("fonts/earth.ttf");
     46
    4147  if(root != NULL)
    4248    this->loadParams(root);
     
    4551
    4652/**
    47  * destroys a ImageEntity
     53 * destroys a TextElement
    4854*/
    49 ImageEntity::~ImageEntity ()
     55TextElement::~TextElement ()
    5056{
    51   if (this->material)
    52     delete this->material;
    5357}
    5458
    5559
    56 /**
    57  * initializes the ImageEntity
    58  */
    59 void ImageEntity::init()
     60void TextElement::loadParams(const TiXmlElement* root)
    6061{
    61   this->setClassID(CL_IMAGE_ENTITY, "ImageEntity");
    62   this->setName("ImageEntity");
     62  Element2D::loadParams(root);
    6363
    64   this->setLayer(E2D_LAYER_TOP);
    65   this->setRotationSpeed(5);
    66   this->setSize(GraphicsEngine::getInstance()->getResolutionX()/10.0, GraphicsEngine::getInstance()->getResolutionY()/10.0);
     64  LoadParam(root, "size", this, Text, setSize);
    6765
    68   this->setBindNode(this);
    69   this->material = new Material;
    70   this->setTexture("pictures/error_texture.png");
    71   this->bBillboarding = false;
     66  LoadParam(root, "text", this, TextElement, setText);
     67
     68  LoadParam(root, "font", this, TextElement, setFont);
    7269}
    7370
    74 
    75 void ImageEntity::loadParams(const TiXmlElement* root)
     71void TextElement::setText(const char* text)
    7672{
    77   PNode::loadParams(root);
    78   Element2D::loadParams(root);
    79 
    80   LoadParam(root, "texture", this, ImageEntity, setTexture)
    81       .describe("the texture-file to load onto the ImageEntity");
    82 
    83   LoadParam(root, "size", this, ImageEntity, setSize)
    84       .describe("the size of the ImageEntity in Pixels");
    85 
    86   LoadParam(root, "rotation-speed", this, ImageEntity, setRotationSpeed)
    87       .describe("the Speed with which the ImageEntity should rotate");
    88 
    89   LoadParam(root, "billboarding", this, ImageEntity, toggleBillboarding)
    90       .describe("sets the Billboard to always look in the direction of the Player");
     73  Text::setText(text);
    9174}
    9275
    93 
    94 /**
    95  * sets the size of the ImageEntity.
    96  * @param size the size in pixels
    97  */
    98 void ImageEntity::setSize(float sizeX, float sizeY)
     76void TextElement::setFont(const char* font)
    9977{
    100   this->setSize2D(sizeX, sizeY);
     78  Text::setFont(font, (unsigned int)this->getSizeY2D());
    10179}
    102 
    103 
    104 /**
    105  * sets the material to load
    106  * @param textureFile The texture-file to load onto the crosshair
    107  */
    108 void ImageEntity::setTexture(const char* textureFile)
    109 {
    110   this->material->setDiffuseMap(textureFile);
    111 }
    112 
    113 
    114 /** this turns on/off the billboarding of this WorldEntity
    115  *
    116  * This means that the image will always look in the direction of the Player
    117  */
    118 void ImageEntity::toggleBillboarding()
    119 {
    120   this->bBillboarding = !this->bBillboarding;
    121 }
    122 
    123 
    124 /**
    125  * ticks the ImageEntity
    126  * @param dt the time to ticks
    127  */
    128 void ImageEntity::tick(float dt)
    129 {
    130 
    131 }
    132 
    133 
    134 /**
    135  * draws the crosshair
    136  */
    137 void ImageEntity::draw() const
    138 {
    139   if( !this->isVisible())
    140     return;
    141 
    142   glPushMatrix();
    143   glTranslatef(this->getAbsCoor2D().x, this->getAbsCoor2D().y, 0);
    144 
    145   //glRotatef(this->getAbsDir2D(), 0,0,1);
    146   this->material->select();
    147   glBegin(GL_TRIANGLE_STRIP);
    148   glTexCoord2f(0, 0);
    149   glVertex2f(-this->getSizeX2D(), -this->getSizeY2D());
    150   glTexCoord2f(1, 0);
    151   glVertex2f(this->getSizeX2D(), -this->getSizeY2D());
    152   glTexCoord2f(0, 1);
    153   glVertex2f(-this->getSizeX2D(), this->getSizeY2D());
    154   glTexCoord2f(1, 1);
    155   glVertex2f(this->getSizeX2D(), this->getSizeY2D());
    156   glEnd();
    157   glPopMatrix();
    158 
    159 }
Note: See TracChangeset for help on using the changeset viewer.