4
1
mirror of https://github.com/QuasarApp/Snake.git synced 2025-05-10 08:29:44 +00:00

Class Snake & Header Controller

This commit is contained in:
usermeme 2018-09-11 20:10:37 +03:00
parent 364e4c2911
commit 7d4153cb0d
8 changed files with 90 additions and 18 deletions

6
back-end/controller.cpp Normal file

@ -0,0 +1,6 @@
#include "controller.h"
Controller::Controller()
{
}

16
back-end/controller.h Normal file

@ -0,0 +1,16 @@
#ifndef CONTROLLER_H
#define CONTROLLER_H
#include <QObject>
#include "snake.h"
class Controller : public QObject
{
private:
Snake snake;
public:
Controller();
void update();
};
#endif // CONTROLLER_H

@ -26,22 +26,21 @@ void Head::setX(double x) {
this->x = x;
}
double Head::getSpeed() const
void Head::render(){
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;
}
void Head::setSpeed(double value)
void Head::setSpeed(double *speed)
{
speed = value;
}
void Head::render(){
qint64 tempTime = QDateTime::currentMSecsSinceEpoch() - time;
double my = y + speed * sin(angle * TO_RADIAN);
y += (my - y) / 1000 * tempTime;
time = QDateTime::currentMSecsSinceEpoch();
this->speed = speed;
}
Head::Head() {

@ -9,9 +9,10 @@
class Head : BaseClass
{
private:
double x, y, angle, speed;
double x, y, angle;
QString texture;
qint64 time;
double *speed;
public:
Head();
double getAngle() const;
@ -23,12 +24,13 @@ public:
double getX() const;
void setX(double x);
double getSpeed() const;
void setSpeed(double value);
double *getSpeed() const;
void setSpeed(double *value);
void render();
~Head();
};
#endif // HEAD_H

23
back-end/snake.cpp Normal file

@ -0,0 +1,23 @@
#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);
}
}
Snake::Snake() :
speed(SPEEDSNAKE)
{
setSpeedHead();
}

22
back-end/snake.h Normal file

@ -0,0 +1,22 @@
#ifndef SNAKE_H
#define SNAKE_H
#define SPEEDSNAKE 10
#include <QVector>
#include "head.h"
class Snake
{
private:
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;
void setSpeedHead (void);
};
#endif // SNAKE_H

@ -5,5 +5,5 @@ Window {
visible: true
width: 640
height: 480
title: qsTr("Hello World")
title: qsTr("SnakeOfTheRoad")
}

@ -15,7 +15,9 @@ DEFINES += QT_DEPRECATED_WARNINGS
SOURCES += \
back-end/main.cpp \
back-end/baseclass.cpp \
back-end/head.cpp
back-end/head.cpp \
back-end/snake.cpp \
back-end/controller.cpp
RESOURCES += qml.qrc
@ -32,4 +34,6 @@ else: unix:!android: target.path = /opt/$${TARGET}/bin
HEADERS += \
back-end/baseclass.h \
back-end/head.h
back-end/head.h \
back-end/snake.h \
back-end/controller.h