59 lines
1.2 KiB
C++
Raw Normal View History

2018-09-09 15:30:38 +03:00
#include "head.h"
2018-09-09 17:02:38 +03:00
#include <cmath>
#include <QDateTime>
2018-09-09 15:30:38 +03:00
2018-11-25 03:24:41 +03:00
void Head::render() {
2018-09-11 22:28:03 +03:00
qint64 tempTime = QDateTime::currentMSecsSinceEpoch() - time;
time = QDateTime::currentMSecsSinceEpoch();
2018-11-25 03:24:41 +03:00
2018-11-28 22:17:30 +03:00
double my = (m_y + (*speed * 0.55) * sin(m_angle * TO_RADIAN));
2018-11-25 03:24:41 +03:00
m_y += (my - m_y) / 1000 * tempTime;
2018-12-01 21:06:40 +03:00
if (*speed < 1) {
setColor(generalSpeadColor);
2018-12-02 14:06:48 +03:00
setRadius(static_cast<int>(m_w * 0.4));
2018-12-01 21:06:40 +03:00
} else if (*speed < normSpead) {
setColor(normSpeadColor);
2018-12-02 14:06:48 +03:00
setRadius(static_cast<int>(m_w * 0.5));
2018-12-01 21:06:40 +03:00
} else if (*speed < fastSpead) {
setColor(fastSpeadColor);
2018-12-02 14:06:48 +03:00
setRadius(static_cast<int>(m_w * 0.5));
2018-12-01 21:06:40 +03:00
} else if (*speed < megaFastSpead) {
setColor(megaFastSpeadColor);
2018-12-01 22:39:03 +03:00
setRadius(static_cast<int>(m_w * 0.4));
2018-12-01 21:06:40 +03:00
}
2018-11-25 03:24:41 +03:00
emit yChanged(m_y);
2018-09-11 20:10:37 +03:00
}
2018-11-25 18:10:08 +03:00
void Head::reset() {
}
2018-12-01 22:39:03 +03:00
void Head::unPause() {
time = QDateTime::currentMSecsSinceEpoch();
}
2018-11-25 03:24:41 +03:00
Head::Head(double x, double y, double h, double w, double *spead):
2018-12-01 21:06:40 +03:00
GuiObject ("SnakeItem") {
2018-11-25 03:24:41 +03:00
setX(x);
setY(y);
setW(w);
setH(h);
2018-09-11 22:28:03 +03:00
this->speed = spead;
2018-09-09 15:30:38 +03:00
}
2018-11-16 20:01:47 +03:00
void Head::setAngle(double angle) {
2018-11-25 03:24:41 +03:00
m_angle = angle;
2018-11-16 20:01:47 +03:00
emit angleChanged(m_angle);
}
2018-09-09 15:30:38 +03:00
Head::~Head() {
2018-09-14 22:06:34 +03:00
2018-09-09 15:30:38 +03:00
}