Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: orxonox.OLD/branches/terrain.older/src/world_entities/npcs/npc_test.cc @ 10764

Last change on this file since 10764 was 8724, checked in by bensch, 19 years ago

merged the bsp-model-stuff back here

File size: 2.2 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: Patrick Boenzli
15   co-programmer:
16*/
17#define DEBUG_SPECIAL_MODULE DEBUG_MODULE_WORLD_ENTITY
18
19
20#include "npc_test.h"
21#include "obb_tree.h"
22
23#include "shader.h"
24#include "state.h"
25#include "stdlibincl.h"
26#include "debug.h"
27
28
29using namespace std;
30
31
32NPC2::NPC2()
33  : NPC(NULL)
34{
35  this->setClassID(CL_NPC_TEST2, "NPC2");
36
37  if ((float)rand()/RAND_MAX > .5f)
38    this->loadModel("models/ships/bolido.obj", 3);
39  else
40    this->loadModel("models/ships/gobblin.obj", 3);
41
42  this->shader = NULL;
43  if (likely(Shader::checkShaderAbility()))
44    this->shader = Shader::getShader("shaders/toon.vert", "shaders/toon.frag");
45
46  this->obj = gluNewQuadric();
47
48  this->randomRotAxis = VECTOR_RAND(1);
49}
50
51
52NPC2::~NPC2 ()
53{
54  if (this->shader)
55    Shader::unload(this->shader);
56  gluDeleteQuadric(this->obj);
57}
58
59
60
61/**
62 *  the entity is drawn onto the screen with this function
63 *
64 * This is a central function of an entity: call it to let the entity painted to the screen.
65 * Just override this function with whatever you want to be drawn.
66 */
67void NPC2::draw() const
68{
69//   glMatrixMode(GL_MODELVIEW);
70//   glPushMatrix();
71//   float matrix[4][4];
72//
73//   /* translate */
74//   glTranslatef (this->getAbsCoor ().x,
75//                 this->getAbsCoor ().y,
76//                 this->getAbsCoor ().z);
77//   /* rotate */
78//   this->getAbsDir ().matrix (matrix);
79//   glMultMatrixf((float*)matrix);
80//
81//   if (this->shader != NULL && this->shader != Shader::getActiveShader())
82//     shader->activateShader();
83//   gluSphere(this->obj, 3, 10, 10);
84//   shader->deactivateShader();
85//
86//
87// /*  if (this->model)
88//     this->model->draw();*/
89//   glPopMatrix();
90}
91
92
93void NPC2::tick(float dt)
94{
95//  Vector direction = (State::getCameraTarget()->getAbsCoor() - this->getAbsCoor());
96
97  //if (directin.len() < 100)
98//  this->shiftCoor(direction *dt * 5 * exp(-direction.len() / 30.0));
99  this->shiftDir(Quaternion(dt, this->randomRotAxis));
100
101}
102
103
104
Note: See TracBrowser for help on using the repository browser.