mirror of
https://github.com/QuasarApp/Snake.git
synced 2025-05-11 08:59:46 +00:00
some fixes
This commit is contained in:
parent
cb033f8f88
commit
1b4aaf0337
src/Core
@ -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;
|
||||
|
||||
};
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user