Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
Jul 11, 2005, 5:43:37 PM (19 years ago)
Author:
bensch
Message:

orxonox/trunk: implemented aim

File:
1 edited

Legend:

Unmodified
Added
Removed
  • orxonox/trunk/src/world_entities/weapons/crosshair.cc

    r4826 r4830  
    2323#include "p_node.h"
    2424#include "state.h"
     25#include "model.h"
    2526
    2627#include <iostream>
     
    3738  this->setName("Crosshair");
    3839
     40  this->material = NULL;
     41  this->model = NULL;
     42  this->rotation = 0;
     43
     44  this->material = new Material("Crosshair Material");
     45  this->material->setDiffuseMap("maps/aim.png");
     46
     47  float size = 50;
     48  this->model = new Model();
     49  this->model->addVertex (-0.5*size, -0.5*size, 0);
     50  this->model->addVertex (0.5*size, -0.5*size, 0);
     51  this->model->addVertex (0.5*size, 0.5*size, 0);
     52  this->model->addVertex (-0.5*size, 0.5*size, 0);
     53
     54  this->model->addVertexTexture(0,0);
     55  this->model->addVertexTexture(1,0);
     56  this->model->addVertexTexture(1,1);
     57  this->model->addVertexTexture(0,1);
     58
     59  this->model->setMaterial(this->material);
     60  this->model->addFace(4, VERTEX_TEXCOORD, 0,0, 1,1 ,2,2, 3,3);
     61  this->model->finalize();
     62
    3963  EventHandler::getInstance()->subscribe(this, ES_GAME, EV_MOUSE_MOTION);
    4064
     
    4771Crosshair::~Crosshair ()
    4872{
     73 // delete this->model;
     74
    4975  // delete what has to be deleted here
    5076  EventHandler::getInstance()->unsubscribe(this);
     
    81107
    82108
    83 void Crosshair::draw() const
     109void Crosshair::draw()
    84110{
    85111  /*
     
    118144  GraphicsEngine::storeMatrices();
    119145
    120   float z;
    121   glReadPixels ((int)position2D[0], GraphicsEngine::getInstance()->getResolutionY()-(int)position2D[1]-1, 1, 1, GL_DEPTH_COMPONENT, GL_FLOAT, &z);
    122 
    123 
    124   printf("%f %f %f\n", (int)position2D[0], (int)position2D[1], z);
     146///  float z;
     147//   glReadPixels ((int)position2D[0], GraphicsEngine::getInstance()->getResolutionY()-(int)position2D[1]-1, 1, 1, GL_DEPTH_COMPONENT, GL_FLOAT, &z);
     148
    125149
    126150  //cout << z <<"  "<< scale << "  "  << bias<< endl;
     151
    127152
    128153  GLdouble objX, objY, objZ;
    129154  gluUnProject(position2D[0],
    130155               GraphicsEngine::getInstance()->getResolutionY()-position2D[1]-1,
    131                .5,
     156               .99,
    132157               GraphicsEngine::modMat,
    133158               GraphicsEngine::projMat,
     
    137162               &objZ );
    138163
    139   glBegin(GL_TRIANGLES);
    140   glColor3f(1,0,0);
    141   glVertex3f(objX, objY, objZ);
    142   glVertex3f(objX, objY+1, objZ);
    143   glVertex3f(objX, objY, objZ+1);
     164  this->setAbsCoor(objX, objY, objZ);
     165
     166//   glBegin(GL_TRIANGLES);
     167//   glColor3f(1,0,0);
     168//   glVertex3f(objX, objY, objZ);
     169//   glVertex3f(objX, objY+1, objZ);
     170//   glVertex3f(objX, objY, objZ+1);
     171//   glEnd();
     172
     173
     174  GraphicsEngine::enter2DMode();
     175  GLdouble pos[3];
     176  gluProject(this->getAbsCoor().x,
     177             this->getAbsCoor().y,
     178             this->getAbsCoor().z,
     179             GraphicsEngine::modMat,
     180             GraphicsEngine::projMat,
     181             GraphicsEngine::viewPort,
     182             pos, pos+1, pos+2 );
     183
     184  printf("%d %d %d\n", (int)pos[0], (int)pos[1], (int)pos[2]);
     185  this->rotation += 5;
     186
     187  glTranslatef(position2D[0], position2D[1], 0);
     188  glRotatef(this->rotation, 0,0,1);
     189  this->model->draw();
     190  /*
     191  glBegin(GL_QUADS);
     192  {
     193    glColor4f(1,0,0,1);
     194    glVertex2f(position2D[0]-10, position2D[1]-10);
     195    glVertex2f(position2D[0]+10, position2D[1]-10);
     196    glVertex2f(position2D[0]+10, position2D[1]+10);
     197    glVertex2f(position2D[0]-10, position2D[1]+10);
     198
     199    //     glVertex2f(pos[0]-10, pos[1]-10);
     200    //     glVertex2f(pos[0]-10, pos[1]+10);
     201    //     glVertex2f(pos[0]+10, pos[1]+10);
     202    //     glVertex2f(pos[0]+10, pos[1]-10);
     203  }
    144204  glEnd();
    145 }
     205  */
     206  GraphicsEngine::leave2DMode();
     207}
Note: See TracChangeset for help on using the changeset viewer.