Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: orxonox.OLD/branches/playability/src/world_entities/test_entity2.cc @ 9978

Last change on this file since 9978 was 9978, checked in by nicolasc, 17 years ago

created bolt.[cc,h], copied from laser, used in light blaster

File size: 4.8 KB
Line 
1
2
3/*
4   orxonox - the future of 3D-vertical-scrollers
5
6   Copyright (C) 2004 orx
7
8   This program is free software; you can redistribute it and/or modify
9   it under the terms of the GNU General Public License as published by
10   the Free Software Foundation; either version 2, or (at your option)
11   any later version.
12
13   ### File Specific
14   main-programmer:
15   co-programmer:
16*/
17#define DEBUG_SPECIAL_MODULE DEBUG_MODULE_WORLD_ENTITY
18
19
20#include "executor/executor.h"
21#include "util/loading/factory.h"
22#include "util/loading/load_param.h"
23
24
25#include "test_entity2.h"
26#include "debug.h"
27
28#include "state.h"
29#include "player.h"
30#include "playable.h"
31#include "material.h"
32
33
34#include "state.h"
35
36
37
38#include "class_id_DEPRECATED.h"
39ObjectListDefinition(TestEntity2);
40CREATE_FACTORY(TestEntity2);
41
42
43
44/**
45 *
46 */
47TestEntity2::TestEntity2()
48{
49  this->init();
50}
51
52
53/**
54 *
55 */
56TestEntity2::TestEntity2(const TiXmlElement* root)
57{
58  this->init();
59
60  if( root != NULL)
61    this->loadParams(root);
62}
63
64
65/**
66 *
67 */
68TestEntity2::~TestEntity2 ()
69{}
70
71
72/**
73 *
74 */
75void TestEntity2::init()
76{
77  this->registerObject(this, TestEntity2::_objectList);
78  this->toList(OM_GROUP_00);
79
80  this->material = new Material();
81  this->material->setIllum(3);
82  this->material->setDiffuse(0.0,0.0,0.0);
83  this->material->setSpecular(0.0,0.0,0.0);
84  this->material->setAmbient(1.0, 0.0, 1.0);
85
86  //this->material->setDiffuseMap("maps/torp2.png");
87}
88
89
90/**
91 * loads the Settings of a MD2Creature from an XML-element.
92 * @param root the XML-element to load the MD2Creature's properties from
93 */
94void TestEntity2::loadParams(const TiXmlElement* root)
95{
96  WorldEntity::loadParams(root);
97}
98
99void TestEntity2::draw() const
100{
101
102
103    glPushMatrix();
104    glMatrixMode(GL_MODELVIEW);
105
106
107    /* translate */
108    glTranslatef (this->getAbsCoor ().x,
109                  this->getAbsCoor ().y,
110                  this->getAbsCoor ().z);
111    Vector tmpRot = this->getAbsDir().getSpacialAxis();
112    glRotatef (this->getAbsDir().getSpacialAxisAngle(), tmpRot.x, tmpRot.y, tmpRot.z );
113
114//PRINTF(0)("axis: %f\n", axis);
115    glDisable(GL_TEXTURE_2D);
116    this->material->select();
117
118  glColor3f(0.0, 1.0, 0.0);
119  glBindTexture( GL_TEXTURE_2D, 1 );
120  glBegin(GL_QUADS); // +X
121    glTexCoord2f (0.0, 0.0);
122    glVertex3f( 0.0f, -0.5f, -0.5f);
123    glNormal3f(1.0, 0.0, 0.0);
124
125    glTexCoord2f (1.0, 0.0);
126    glVertex3f( 0.0f, -0.5f , 0.5f);
127    glNormal3f(1.0, 0.0, 0.0);
128
129    glTexCoord2f (1.0, 1.0);
130    glVertex3f( 0.0, 0.5f , 0.5f );
131    glNormal3f(1.0, 0.0, 0.0);
132
133
134    glTexCoord2f (0.0, 1.0);
135    glVertex3f( 0.0, 0.5f, -0.5f );
136    glNormal3f(1.0, 0.0, 0.0);
137  glEnd();
138
139  glBegin(GL_QUADS); // +Y
140    glTexCoord2f (0.0, 0.0);
141    glVertex3f(-0.5f, 0.0f, -0.5f);
142    glNormal3f(0.0, 1.0, 0.0);
143
144    glTexCoord2f (1.0, 0.0);
145    glVertex3f(-0.5f, 0.0f , 0.5f);
146    glNormal3f(0.0, 1.0, 0.0);
147
148    glTexCoord2f (1.0, 1.0);
149    glVertex3f( 0.5f, 0.0f , 0.5f );
150    glNormal3f(0.0, 1.0, 0.0);
151
152    glTexCoord2f (0.0, 1.0);
153    glVertex3f( 0.5f, 0.0f, -0.5f );
154    glNormal3f(0.0, 1.0, 0.0);
155  glEnd();
156
157  glBegin(GL_QUADS);// +Z
158    glTexCoord2f (0.0, 0.0);
159    glVertex3f(-0.5f, -0.5f, 0.0f);
160    glNormal3f(0.0, 0.0, 1.0);
161
162    glTexCoord2f (1.0, 0.0);
163    glVertex3f(-0.5f, 0.5f , 0.0f);
164    glNormal3f(0.0, 0.0, 1.0);
165
166    glTexCoord2f (1.0, 1.0);
167    glVertex3f( 0.5f, 0.5f , 0.0f );
168    glNormal3f(0.0, 0.0, 1.0);
169
170    glTexCoord2f (0.0, 1.0);
171    glVertex3f( 0.5f, -0.5f, 0.0f );
172    glNormal3f(0.0, 0.0, 1.0);
173  glEnd();
174
175  glBegin(GL_QUADS);
176    glTexCoord2f (0.0, 0.0);
177    glVertex3f( 0.0f, -0.5f, -0.5f);
178    glNormal3f(-1.0, 0.0, 0.0);
179
180    glTexCoord2f (1.0, 0.0);
181    glVertex3f( 0.0f, 0.5f , -0.5f);
182    glNormal3f(-1.0, 0.0, 0.0);
183
184    glTexCoord2f (1.0, 1.0);
185    glVertex3f( 0.0, 0.5f , 0.5f );
186    glNormal3f(-1.0, 0.0, 0.0);
187
188    glTexCoord2f (0.0, 1.0);
189    glVertex3f( 0.0, -0.5f, 0.5f );
190    glNormal3f(-1.0, 0.0, 0.0);
191  glEnd();
192
193  glBegin(GL_QUADS);
194    glTexCoord2f (0.0, 0.0);
195    glVertex3f(-0.5f, 0.0f, -0.5f);
196    glNormal3f(0.0, -1.0, 0.0);
197
198    glTexCoord2f (1.0, 0.0);
199    glVertex3f(0.5f, 0.0f , -0.5f);
200    glNormal3f(0.0, -1.0, 0.0);
201
202    glTexCoord2f (1.0, 1.0);
203    glVertex3f( 0.5f, 0.0f , 0.5f );
204    glNormal3f(0.0, -1.0, 0.0);
205
206    glTexCoord2f (0.0, 1.0);
207    glVertex3f( -0.5f, 0.0f, 0.5f );
208    glNormal3f(0.0, -1.0, 0.0);
209  glEnd();
210
211  glBegin(GL_QUADS);
212    glTexCoord2f (0.0, 0.0);
213    glVertex3f(-0.5f, -0.5f, 0.0f);
214    glNormal3f(0.0, 0.0, -1.0);
215
216    glTexCoord2f (1.0, 0.0);
217    glVertex3f(0.5f, -0.5f , 0.0f);
218    glNormal3f(0.0, 0.0, -1.0);
219
220    glTexCoord2f (1.0, 1.0);
221    glVertex3f( 0.5f, 0.5f , 0.0f );
222    glNormal3f(0.0, 0.0, -1.0);
223
224    glTexCoord2f (0.0, 1.0);
225    glVertex3f( -0.5f, 0.5f, 0.0f );
226    glNormal3f(0.0, 0.0, -1.0);
227  glEnd();
228
229  glPopMatrix();
230//    glPopAttrib();
231}
232
233/**
234 *
235 */
236void TestEntity2::tick (float time)
237{
238  Player* p = State::getPlayer();
239  Playable* pl = p->getPlayable();
240
241  this->setParent(pl);
242}
243
244
245
246
247
248
Note: See TracBrowser for help on using the repository browser.