-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathport_disc.h
44 lines (40 loc) · 1.08 KB
/
port_disc.h
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
#ifndef PORT_DISC_H
#define PORT_DISC_H
#include <Zeni/Collision.h>
#include <Zeni/Model.h>
#include <Zeni/Quaternion.h>
#include <Zeni/Sound.h>
#include <Zeni/Vector3f.h>
#include "enemy.h"
#include "game_object.h"
namespace port_disc{
class port_disc {
public:
port_disc(std::pair <const Zeni::Point3f, const Zeni::Vector3f> in);
void update(std::pair <const Zeni::Point3f, const Zeni::Vector3f> in);
Zeni::Point3f location();
void step(const float &time_step);
const Zeni::Collision::Infinite_Cylinder & get_body() const {return m_body;}
void accelerate(Zeni::Vector3f vec);
void render();
void stop();
bool is_stopped(){return stopped;};
void set_location(Zeni::Point3f);
void enemy_stuck(enemy* it);
enemy* stuck_to(){return stuck;};
bool is_stuck();
private:
void create_body();
Zeni::Model *m_model;
Zeni::Point3f m_end_point_a;
Zeni::Point3f m_end_point_b;
float m_radius;
Zeni::Collision::Infinite_Cylinder m_body;
Zeni::Point3f m_position;
Zeni::Vector3f m_velocity;
Zeni::Quaternion m_rotation;
bool stopped;
enemy* stuck;
};
}
#endif