mirror of
https://github.com/QuasarApp/Snake.git
synced 2025-05-03 21:19:44 +00:00
fix test lvl
This commit is contained in:
parent
6bda0f06fb
commit
cccea19ee3
@ -31,7 +31,6 @@ QByteArray ClientApp::initTheme() {
|
||||
case 1: return "Dark";
|
||||
default: return "Light";
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
ClientApp::ClientApp() {
|
||||
|
@ -30,7 +30,7 @@ void GuiObject::setColor(QString color) {
|
||||
|
||||
void GuiObject::generateId() {
|
||||
static int id = 0;
|
||||
_guiId = id++;
|
||||
setGuiId(id++);
|
||||
}
|
||||
|
||||
const QString &GuiObject::className() const {
|
||||
|
@ -5,12 +5,13 @@
|
||||
//# of this license document, but changing it is not allowed.
|
||||
//#
|
||||
|
||||
#include "defaultcontrol.h"
|
||||
#include "iplayer.h"
|
||||
|
||||
IPlayer::IPlayer(const QString &name,
|
||||
const QString &viewTempalte,
|
||||
QObject *ptr):
|
||||
IWorldItem(name, viewTempalte, ptr) {
|
||||
MovableObject(name, viewTempalte, ptr) {
|
||||
|
||||
}
|
||||
|
||||
@ -52,6 +53,21 @@ void IPlayer::setSpeed(float newSpead) {
|
||||
}
|
||||
}
|
||||
|
||||
void IPlayer::setControl(const IControl *control) {
|
||||
|
||||
|
||||
if (auto oldControl = dynamic_cast<const DefaultControl*>(_currentControl)) {
|
||||
disconnect(oldControl, &DefaultControl::userTap, this, &IPlayer::onTap);
|
||||
}
|
||||
|
||||
auto defaultControl = dynamic_cast<const DefaultControl*>(control);
|
||||
_currentControl = defaultControl;
|
||||
|
||||
if (_currentControl) {
|
||||
connect(defaultControl, &DefaultControl::userTap, this, &IPlayer::onTap);
|
||||
}
|
||||
}
|
||||
|
||||
void IPlayer::kill() {
|
||||
_fDead = true;
|
||||
}
|
||||
|
@ -9,15 +9,15 @@
|
||||
#define IPLAYER_H
|
||||
|
||||
#include "gameresult.h"
|
||||
#include "iworlditem.h"
|
||||
#include "global.h"
|
||||
#include "movableobject.h"
|
||||
|
||||
class IControl;
|
||||
|
||||
/**
|
||||
* @brief The IPlayer class This is base class of the player functions.
|
||||
*/
|
||||
class CRAWL_EXPORT IPlayer: public IWorldItem {
|
||||
class CRAWL_EXPORT IPlayer: public MovableObject {
|
||||
Q_OBJECT
|
||||
public:
|
||||
IPlayer(const QString& name,
|
||||
@ -53,7 +53,7 @@ public:
|
||||
* @param control This is control object.
|
||||
* @note This method can invoked two or more times, for example connect with AI control object and player control object. So your implementation should be contains disconnect methods.
|
||||
*/
|
||||
virtual void setControl(const IControl* control) = 0;
|
||||
virtual void setControl(const IControl* control);
|
||||
|
||||
protected:
|
||||
|
||||
@ -92,6 +92,7 @@ protected:
|
||||
*/
|
||||
void fine(int value);
|
||||
|
||||
protected slots:
|
||||
/**
|
||||
* @brief onTap This method invoked when user tap on screen.
|
||||
* @note method connected in the IPlayer::setControl function. So if you overrid the IPlayer::setControl method then please invoke method of a parent class.
|
||||
@ -102,6 +103,7 @@ private:
|
||||
bool _fDead = false;
|
||||
int _currentPoints = 0;
|
||||
float _speed = 0;
|
||||
const IControl * _currentControl = nullptr;
|
||||
};
|
||||
|
||||
#endif // IPLAYER_H
|
||||
|
@ -28,6 +28,9 @@ void MovableObject::render(unsigned int tbfMsec) {
|
||||
// recalc new currentMovable vector (applay changes)
|
||||
_currentMovableVector += tempVector;
|
||||
|
||||
// update movable vector
|
||||
_movableVector *= _breakingForce;
|
||||
|
||||
}
|
||||
|
||||
const QVector3D &MovableObject::movableVector() const {
|
||||
|
@ -12,7 +12,7 @@
|
||||
* * **Angular velocity** This property sets spead of the angle moving.
|
||||
* * **Braking force** This property are delta decriment the Power of the movable vector on time.
|
||||
*/
|
||||
class MovableObject: public IWorldItem
|
||||
class CRAWL_EXPORT MovableObject: public IWorldItem
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
@ -72,7 +72,7 @@ private:
|
||||
QVector3D _currentMovableVector;
|
||||
|
||||
float _angularVelocity = 0;
|
||||
float _breakingForce = 0;
|
||||
float _breakingForce = 1;
|
||||
|
||||
};
|
||||
|
||||
|
@ -33,7 +33,9 @@ View3D {
|
||||
|
||||
PointLight {
|
||||
position: camera.position
|
||||
brightness: 1500
|
||||
rotation: camera.rotation
|
||||
|
||||
brightness: 250
|
||||
}
|
||||
|
||||
environment: SceneEnvironment {
|
||||
@ -64,6 +66,7 @@ View3D {
|
||||
console.log("create object fail")
|
||||
return;
|
||||
}
|
||||
|
||||
const objModel = model.getGameObject(cppObjId);
|
||||
|
||||
if (!objModel) {
|
||||
|
@ -1 +1 @@
|
||||
Subproject commit 3f8198a0767f860fa17fed86f6772f09462077fa
|
||||
Subproject commit d23bfac78fa12f38aafaffc99955bcaea35e59a9
|
Loading…
x
Reference in New Issue
Block a user