blob: 8c65264d84825525544cf5953a4fc43f32d6fddd (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
/*
game/ship.h
This file is part of the Osirion project and is distributed under
the terms and conditions of the GNU General Public License version 2
*/
#ifndef __INCLUDED_SHIP_H__
#define __INCLUDED_SHIP_H__
// project headers
#include "common/vector3f.h"
namespace game {
class Ship
{
public:
Ship();
~Ship();
/// update the ship state
void update(float elapsed);
/// location of the ship in space
common::Vector3f location;
/// speed vector in units/second
float speed;
/// return the current yaw angle
inline float yaw() const { return yaw_current; }
/// set the target yaw angle
void set_yaw(float y);
/// return the current thruster power
inline float thrust() const { return thrust_current; }
/// set thruster power
void set_thrust(float t);
/* -- Ship SPECS --*/
/// acceleration
float acceleration;
/// maximum speed
float speed_max;
/// yaw turn speed
float yaw_speed;
private:
/// current yaw, angle in XZ plane, 0-360
float yaw_current;
/// target yaw angle, angle in XYplane, 0-360
float yaw_target;
/// current thruster power in % [0-1]
float thrust_current;
};
} // namespace game
#endif // __INCLUDED_SHIP_H__
|