-
Notifications
You must be signed in to change notification settings - Fork 2
/
King.cpp
91 lines (77 loc) · 1.79 KB
/
King.cpp
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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
//
// King.cpp
// Project
//
// Created by Inês on 11/11/11.
// Copyright 2011 __MyCompanyName__. All rights reserved.
//
#include "King.h"
#include "ModelManager.h"
namespace CastleBlast {
King::King() : cg::Entity("KING"), Collidable(6,20,4)
{
_type = "KING";
_rotation = 0;
}
King::~King() {}
void King::init()
{
_isAlive = true;
_debug = false;
_position = cg::Vector3d(0,0,0);
_model = (ModelManager*)cg::Registry::instance()->get("MODEL_MANAGER");
#ifdef __APPLE__
_model->newModel(_type, "Models/King.obj");
#else
_model->newModel(_type, "..\\..\\src\\Models\\King.obj");
#endif
}
void King::draw()
{
glPushMatrix();
{
if (_debug)
drawBoundingBox();
glTranslatef(_position[0], _position[1], _position[2]);
glRotated(_rotation, 0, 1, 0);
glScaled(2, 2, 2);
glEnable(GL_NORMALIZE);
_model->drawModel(_type);
glDisable(GL_NORMALIZE);
}
glPopMatrix();
}
void King::update(unsigned long elapsed_millis)
{
if(cg::KeyBuffer::instance()->isKeyDown('k')) {
_isAlive = false;
}
}
void King::placeKing(cg::Vector3d position, float rot)
{
cg::Vector3d center = position;
center[1] = center[1]+3.2;
newPosition(center);
_position = position;
_rotation = (rot*180)/3.14;
}
void King::debugToggle()
{
_debug = !_debug;
}
bool King::isCollision(Collidable* obj)
{
boundaries otherObjBoundaries = obj->getBoundaries();
if (otherObjBoundaries.x_min >= _boundes.x_min && otherObjBoundaries.x_max <= _boundes.x_max &&
otherObjBoundaries.y_min >= _boundes.y_min && otherObjBoundaries.y_max <= _boundes.y_max &&
otherObjBoundaries.z_min >= _boundes.z_min && otherObjBoundaries.z_max <= _boundes.z_max){
_isAlive = false;
return true;
}
return false;
}
bool King::isAlive()
{
return _isAlive;
}
}