Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: orxonox.OLD/orxonox/trunk/src/world_entities/test_gun.cc @ 3746

Last change on this file since 3746 was 3710, checked in by patrick, 20 years ago

orxonox/trunk: added the TestBullet to framework, made some doxygen, works

File size: 2.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: Patrick Boenzli
15   co-programmer:
16
17
18   \todo: direction in which the projectile flights
19   \todo: a target to set/hit
20*/
21
22
23#include "test_gun.h"
24
25#include "stdincl.h"
26#include "world_entity.h"
27#include "model.h"
28#include "test_bullet.h"
29
30#include "vector.h"
31#include "list.h"
32
33using namespace std;
34
35
36/**
37   \brief standard constructor
38
39   creates a new weapon
40*/
41TestGun::TestGun (PNode* parent, Vector* coordinate, Quaternion* direction) 
42  :  Weapon (parent, coordinate, direction) 
43{
44  this->idleTime = 0.2f;
45}
46
47
48/**
49   \brief standard deconstructor
50*/
51TestGun::~TestGun () 
52{
53  // model will be deleted from WorldEntity-destructor
54}
55
56
57/**
58   \brief this activates the weapon
59
60   This is needed, since there can be more than one weapon on a ship. the
61   activation can be connected with an animation. for example the weapon is
62   been armed out.
63*/
64void TestGun::activate()
65{}
66
67
68/**
69   \brief this deactivates the weapon
70
71   This is needed, since there can be more than one weapon on a ship. the
72   activation can be connected with an animation. for example the weapon is
73   been armed out.
74*/
75void TestGun::deactivate()
76{}
77
78
79/**
80   \brief fires the weapon
81   
82   this is called from the player.cc, when fire-button is been pushed
83*/
84void TestGun::fire()
85{
86  if( this->localTime < this->idleTime)
87    {
88      this->weaponIdle();
89      return;
90    }
91  Projectile* pj = new TestBullet(this);
92
93  pj->setAbsCoor(this->getAbsCoor());
94  pj->setAbsDir(this->getAbsDir());
95
96  pj->setFlightDirection(this->getAbsDir());
97  pj->setSpeed(this->getSpeed());
98
99  this->worldEntities->add(pj);
100  this->localTime = 0;
101}
102
103
104/**
105   \brief is called, when the weapon gets hit (=collide with something)
106   \param from which entity it is been hit
107   \param where it is been hit
108
109   this may not be used, since it would make the game relay complicated when one
110   can destroy the weapons of enemies or vice versa.
111*/
112void TestGun::hit (WorldEntity* entity, Vector* position) 
113{}
114
115
116/**
117   \brief is called, when the weapon is destroyed
118
119   this is in conjunction with the hit function, so when a weapon is able to get
120   hit, it can also be destoryed.
121*/
122void TestGun::destroy () 
123{}
124
125
126/**
127   \brief tick signal for time dependent/driven stuff
128*/
129void TestGun::tick (float time) 
130{
131  this->localTime += time;
132  //this->debug();
133  //printf("TEST_GUN: this speed is: %f\n", this->getSpeed());
134}
135
136
137/**
138   \brief is called, when there is no fire button pressed
139*/
140void TestGun::weaponIdle()
141{}
142
143
144/**
145   \brief this will draw the weapon
146*/
147void TestGun::draw () 
148{}
149
Note: See TracBrowser for help on using the repository browser.