4
1
mirror of https://github.com/QuasarApp/Snake.git synced 2025-05-11 08:59:46 +00:00

some fixes

This commit is contained in:
Andrei Yankovich 2021-08-06 14:55:52 +03:00
parent cb033f8f88
commit 1b4aaf0337
4 changed files with 17 additions and 0 deletions

@ -87,6 +87,7 @@ bool IWorld::start() {
worldChanged(_worldRules->cbegin());
setTargetFps(60);
setRunning(true);
_eventServer->start();
return true;
}
@ -121,6 +122,7 @@ IWorldItem *IWorld::generate(const QString &objectType) const {
bool IWorld::stop() {
setRunning(false);
_eventServer->stop();
return true;
}

@ -14,6 +14,7 @@ namespace CRAWL {
SnakeItem::SnakeItem(const QString &name, const QString &viewTempalte, QObject *ptr):
SingleClasterWorldItem(name, viewTempalte, ptr) {
setAngularVelocity(-1);
setFDecorative(true);
}

@ -77,6 +77,7 @@ void EventServer::eventProcess() {
if (result.size()) {
emit sigIntersect(result << item);
}
break;
}
default: {
@ -96,7 +97,19 @@ void EventServer::addToSupportedEvents(const IWorldItem * obj, int event) {
void EventServer::renderLoop() {
while (_renderLoop) {
quint64 currentTime = QDateTime::currentMSecsSinceEpoch();
if (!_oldTimeRender) {
_oldTimeRender = currentTime;
continue;
}
eventProcess();
int waitTime = 100 - currentTime + _oldTimeRender;
_oldTimeRender = currentTime;
if (waitTime > 0)
std::this_thread::sleep_for(std::chrono::milliseconds(waitTime));
}
}
}

@ -67,6 +67,7 @@ private:
QList<int> _supportedEventsKeys;
QFuture<void> _renderLoopFuture;
bool _renderLoop = false;
quint64 _oldTimeRender = 0;
};