diff --git a/src/Core/Crawl/day.h b/src/Core/Crawl/day.h index 25f2d12..6ac569b 100644 --- a/src/Core/Crawl/day.h +++ b/src/Core/Crawl/day.h @@ -56,7 +56,7 @@ public: item->setRadius(radius()); item->setAxis(_axis); item->setAngularVelocity(lengthToSpeed(_dayLengthSec)); - item->setLightForce(_radius * 30); + item->setLightForce(lengthForce()); Claster::add(item); } else { @@ -90,7 +90,7 @@ public: _radius = newRadius; for (auto object: objects()) { - reinterpret_cast(object)->setLightForce(_radius * 30); + reinterpret_cast(object)->setLightForce(lengthForce()); reinterpret_cast(object)->setRadius(_radius); } @@ -154,8 +154,12 @@ private: return (2 * M_PI * radius()) / length; } - int _radius = 2000; - float _dayLengthSec = 160; + float lengthForce() const { + return _radius * 15; + } + + int _radius = 1000; + float _dayLengthSec = 360; QVector3D _axis = {1,0,0}; }; diff --git a/src/Core/Crawl/iworlditem.cpp b/src/Core/Crawl/iworlditem.cpp index e6a06f3..da37964 100644 --- a/src/Core/Crawl/iworlditem.cpp +++ b/src/Core/Crawl/iworlditem.cpp @@ -35,15 +35,15 @@ const IWorldItem *IWorldItem::getPlayer() const { void IWorldItem::render(unsigned int) { if (_playerObject->position().distanceToPoint(position()) > - _world->cameraReleativePosition().z() * 2) { + _world->cameraReleativePosition().z() * 3) { - float dX = _world->cameraReleativePosition().z() + + float dX = _world->cameraReleativePosition().z() * 2 + (rand() % static_cast(_world->cameraReleativePosition().z())); setX(_playerObject->position().x() + dX); - float dY = (rand() % static_cast(_world->cameraReleativePosition().z() * 2) - - _world->cameraReleativePosition().z()); + float dY = (rand() % static_cast(_world->cameraReleativePosition().z() * 3) + - _world->cameraReleativePosition().z() * 1.5); setY(_playerObject->position().y() + dY); } diff --git a/src/Core/CrawlModule/DayLight.qml b/src/Core/CrawlModule/DayLight.qml index 5850cea..bb68810 100644 --- a/src/Core/CrawlModule/DayLight.qml +++ b/src/Core/CrawlModule/DayLight.qml @@ -17,7 +17,7 @@ Node { PointLight { id : sun - brightness: (model)? model.lightForce: 100 + brightness: (model)? model.lightForce * model.visible: 100 color: (model)? model.color: "#ffffff" castsShadow: (model)? model.castsShadow: 0 shadowFactor: (model)? model.shadowFactor: 0 @@ -26,12 +26,17 @@ Node { shadowBias: (model)? model.shadowBias: 0 shadowMapQuality: Light.ShadowMapQualityHigh + Behavior on brightness { + NumberAnimation { + duration: 5000 + } + } } rotation: (model)? model.ratation: Qt.quaternion(0, 0, 0, 0) scale: (model)? model.size: Qt.vector3d(0, 0, 0); position: (model) ? model.position: Qt.vector3d(0,0,0); - visible: (model)? model.visible: false + visible: sun.brightness } diff --git a/src/CrawlTestLvl/private/world.cpp b/src/CrawlTestLvl/private/world.cpp index fdfa899..5ff8f03 100644 --- a/src/CrawlTestLvl/private/world.cpp +++ b/src/CrawlTestLvl/private/world.cpp @@ -21,8 +21,8 @@ namespace TestLvl { World::World() { - setCameraReleativePosition({0,0,100}); - setCameraRatation(QQuaternion::fromEulerAngles({0,0,-90})); + setCameraReleativePosition({50,0,100}); + setCameraRatation(QQuaternion::fromEulerAngles({0,0,0})); } CRAWL::WorldRule *World::initWorldRules() { diff --git a/src/JungleLvl/private/world.cpp b/src/JungleLvl/private/world.cpp index e12cebb..8a462ba 100644 --- a/src/JungleLvl/private/world.cpp +++ b/src/JungleLvl/private/world.cpp @@ -29,8 +29,8 @@ namespace JungleLvl { World::World() { - setCameraReleativePosition({0,0,100}); - setCameraRatation(QQuaternion::fromEulerAngles({0,0,-90})); + setCameraReleativePosition({50,0,100}); + setCameraRatation(QQuaternion::fromEulerAngles({0,0,0})); } CRAWL::WorldRule *World::initWorldRules() {