-
Notifications
You must be signed in to change notification settings - Fork 0
/
abstractpet.cpp
58 lines (49 loc) · 1.35 KB
/
abstractpet.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
#include "abstractpet.h"
AbstractPet::AbstractPet(qreal w, qreal h, const QPointF &pos,
const QPixmaps2 &pixs2, QGraphicsScene *scene,
QGraphicsItem *parent)
: AbstractMovableItem(w, h, pos, pixs2, scene, parent)
{
}
void AbstractPet::advance(int)
{
AbstractMovableItem::advance(0);
if (m_step % Config::UPDATE_PAINT_STEP == 0){ // update action, direction and pos
updateDirection();
m_pixIndex++;
if (m_pixIndex == Config::PETS_INDEX_COUNT){
m_pixIndex = 0;
if (turning()){ // finish turning
turning(false);
}
}
if (turning()){
if (right()){
m_pixStateIndex = Config::PETS_TURN_RIGHT_STATE_INDEX;
}
else if (left()){
m_pixStateIndex = Config::PETS_TURN_LEFT_STATE_INDEX;
}
} else {
if (left()){
m_pixStateIndex = Config::PETS_SWIM_LEFT_STATE_INDEX;
}
else if (right()){
m_pixStateIndex = Config::PETS_SWIM_RIGHT_STATE_INDEX;
}
}
move();
}
}
void AbstractPet::slt_alienComes(const QString &)
{
// do nothing
}
void AbstractPet::slt_alienDies()
{
// do nothing
}
void AbstractPet::slt_specialSkill()
{
// do nothing
}