mirror of
https://github.com/QuasarApp/Snake.git
synced 2025-05-13 09:59:46 +00:00
Class Snake & Header Controller
This commit is contained in:
parent
364e4c2911
commit
7d4153cb0d
6
back-end/controller.cpp
Normal file
6
back-end/controller.cpp
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
#include "controller.h"
|
||||||
|
|
||||||
|
Controller::Controller()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
16
back-end/controller.h
Normal file
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;
|
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;
|
return speed;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Head::setSpeed(double value)
|
void Head::setSpeed(double *speed)
|
||||||
{
|
{
|
||||||
speed = value;
|
this->speed = speed;
|
||||||
}
|
|
||||||
|
|
||||||
void Head::render(){
|
|
||||||
qint64 tempTime = QDateTime::currentMSecsSinceEpoch() - time;
|
|
||||||
double my = y + speed * sin(angle * TO_RADIAN);
|
|
||||||
y += (my - y) / 1000 * tempTime;
|
|
||||||
time = QDateTime::currentMSecsSinceEpoch();
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Head::Head() {
|
Head::Head() {
|
||||||
|
@ -9,9 +9,10 @@
|
|||||||
class Head : BaseClass
|
class Head : BaseClass
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
double x, y, angle, speed;
|
double x, y, angle;
|
||||||
QString texture;
|
QString texture;
|
||||||
qint64 time;
|
qint64 time;
|
||||||
|
double *speed;
|
||||||
public:
|
public:
|
||||||
Head();
|
Head();
|
||||||
double getAngle() const;
|
double getAngle() const;
|
||||||
@ -23,12 +24,13 @@ public:
|
|||||||
double getX() const;
|
double getX() const;
|
||||||
void setX(double x);
|
void setX(double x);
|
||||||
|
|
||||||
double getSpeed() const;
|
double *getSpeed() const;
|
||||||
void setSpeed(double value);
|
void setSpeed(double *value);
|
||||||
|
|
||||||
void render();
|
void render();
|
||||||
|
|
||||||
~Head();
|
~Head();
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // HEAD_H
|
#endif // HEAD_H
|
||||||
|
23
back-end/snake.cpp
Normal file
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
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
|
visible: true
|
||||||
width: 640
|
width: 640
|
||||||
height: 480
|
height: 480
|
||||||
title: qsTr("Hello World")
|
title: qsTr("SnakeOfTheRoad")
|
||||||
}
|
}
|
||||||
|
@ -15,7 +15,9 @@ DEFINES += QT_DEPRECATED_WARNINGS
|
|||||||
SOURCES += \
|
SOURCES += \
|
||||||
back-end/main.cpp \
|
back-end/main.cpp \
|
||||||
back-end/baseclass.cpp \
|
back-end/baseclass.cpp \
|
||||||
back-end/head.cpp
|
back-end/head.cpp \
|
||||||
|
back-end/snake.cpp \
|
||||||
|
back-end/controller.cpp
|
||||||
|
|
||||||
RESOURCES += qml.qrc
|
RESOURCES += qml.qrc
|
||||||
|
|
||||||
@ -32,4 +34,6 @@ else: unix:!android: target.path = /opt/$${TARGET}/bin
|
|||||||
|
|
||||||
HEADERS += \
|
HEADERS += \
|
||||||
back-end/baseclass.h \
|
back-end/baseclass.h \
|
||||||
back-end/head.h
|
back-end/head.h \
|
||||||
|
back-end/snake.h \
|
||||||
|
back-end/controller.h
|
||||||
|
Loading…
x
Reference in New Issue
Block a user