fix snake class

This commit is contained in:
Andrei Yankovich 2018-09-11 22:08:08 +03:00
parent 7d4153cb0d
commit f0a14c33b9
4 changed files with 44 additions and 49 deletions

View File

@ -3,48 +3,42 @@
#include <QDateTime>
double Head::getAngle() const {
return angle;
return _angle;
}
void Head::setAngle(double angle) {
this->angle = angle;
_angle = angle;
}
double Head::getY() const {
return y;
return _y;
}
void Head::setY(double y) {
this->y = y;
_y = y;
}
double Head::getX() const {
return x;
return _x;
}
void Head::setX(double x) {
this->x = x;
_x = x;
}
void Head::render(){
qint64 tempTime = QDateTime::currentMSecsSinceEpoch() - time;
double my = y + *speed * sin(angle * TO_RADIAN);
y += (my - y) / 1000 * tempTime;
time = QDateTime::currentMSecsSinceEpoch();
qint64 tempTime = QDateTime::currentMSecsSinceEpoch() - _time;
double my = _y + *_speed * sin(_angle * TO_RADIAN);
_y += (my - _y) / 1000 * tempTime;
_time = QDateTime::currentMSecsSinceEpoch();
}
double *Head::getSpeed() const
{
return speed;
double Head::getSpeed() const {
return *_speed;
}
void Head::setSpeed(double *speed)
{
this->speed = speed;
}
Head::Head() {
Head::Head(double *spead) {
_speed = spead;
}
Head::~Head() {

View File

@ -9,12 +9,12 @@
class Head : BaseClass
{
private:
double x, y, angle;
QString texture;
qint64 time;
double *speed;
double _x, _y, _angle;
QString _texture;
qint64 _time;
double *_speed;
public:
Head();
Head(double *spead);
double getAngle() const;
void setAngle(double angle);
@ -24,7 +24,7 @@ public:
double getX() const;
void setX(double x);
double *getSpeed() const;
double getSpeed() const;
void setSpeed(double *value);
void render();

View File

@ -1,23 +1,25 @@
#include "snake.h"
void Snake::setItems(const QVector<Head *> &value)
{
items = value;
}
QVector<Head *> Snake::getItems() const
{
return items;
}
void Snake::setSpeedHead(){
for(int i = 0;i < getItems().size(); ++i){
getItems().at(i)->setSpeed(&speed);
}
const QVector<Head *> &Snake::getItems() const {
return _items;
}
Snake::Snake() :
speed(SPEEDSNAKE)
{
setSpeedHead();
_speed(SPEEDSNAKE){
}
bool Snake::init(int size, double spead) {
if (size < 0 || spead <= 0) {
return false;
}
_speed = spead;
for ( int i = size; i >= 0; --i ) {
_items.push_back( new Head(&_speed));
}
return true;
}

View File

@ -8,14 +8,13 @@
class Snake
{
private:
QVector<Head*> items;
double speed;
bool isClick;
QVector<Head*> _items;
double _speed;
bool _isClick;
public:
Snake();
bool init(int size, bool click);
void setItems(const QVector<Head *> &value);
QVector<Head *> getItems() const;
bool init(int size, double spead);
const QVector<Head*>& getItems() const;
void setSpeedHead (void);
};