Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: orxonox.OLD/orxonox/trunk/core/player.cc @ 1929

Last change on this file since 1929 was 1929, checked in by bensch, 20 years ago

orxonox/trunk: inhibitor added, so it shoots in impulses

File size: 2.3 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
19#include "player.h"
20#include <iostream>
21#include <stdlib.h>
22
23
24using namespace std;
25
26
27Player::Player () {
28  // cout << "Player::Player" << endl;
29  xCor = yCor = zCor = 0;
30  shootLaser = new ShootLaser;
31  shootRocket = new ShootRocket;
32}
33
34Player::~Player () 
35{
36  //delete shootLaser;
37}
38
39
40void Player::setPosition( float x, float y, float z)
41{
42  xCor = x; yCor = y; zCor = z;
43}
44
45
46void Player::getPosition(float* x, float* y, float* z)
47{
48  *x = xCor; *y = yCor; *z = zCor;
49}
50
51
52void Player::setCollisionRadius(float radius) 
53{
54  collisionRadius = radius;
55}
56
57
58void Player::goX(float x) 
59{
60  //cout << "Player::goX" << endl;
61  xCor += x;
62}
63
64
65void Player::goY(float y)
66{
67  yCor += y;
68}
69
70void Player::goZ(float z)
71{
72  zCor += z;
73}
74
75void Player::shoot(int n) 
76{
77  if (shootLaser->inhibitor++ >=100)
78    {
79      if (shootLaser->inhibitor++ <= 150)
80        shootLaser->addShoot(xCor, yCor, zCor);
81      else if (shootLaser->inhibitor++ >= 250 && shootLaser->inhibitor <= 300)
82        shootLaser->addShootExt(xCor, yCor, zCor, .1, .4, .0);
83      else if (shootLaser->inhibitor++ >= 350)
84        shootLaser->addShootExt(xCor, yCor, zCor, -0.1, .4, .0);
85      if (shootLaser->inhibitor >=400)
86        shootLaser->inhibitor =0;
87    }
88  if (shootRocket->inhibitor++ >=80)
89    {
90      shootRocket->addBackParable(xCor, yCor, zCor);
91      shootRocket->addSideAcc(xCor, yCor, zCor, RIGHT);
92      shootRocket->addSideAcc(xCor, yCor, zCor, LEFT);
93      shootRocket->addRotater(xCor, yCor, zCor);
94      if (shootRocket->inhibitor >=90)
95        shootRocket->inhibitor =0;
96    }
97  //cout << "Player::shoot" << endl;
98}
99
100
101//void Player::addIO(InputOutput *io) {}
102
103
104void Player::drawPlayer(void) 
105{
106  glPushMatrix();
107  glTranslatef(xCor, yCor, 3.0);
108  glScalef(1.0, 3.0, 1.0);
109  glutWireCube(1.0);
110  glPopMatrix();
111  /* draw all the shoots additionaly */
112  shootLaser->drawShoot();
113  shootRocket->drawShoot();
114  //cout << "Player::drawPlayer" << endl;
115}
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
Note: See TracBrowser for help on using the repository browser.