From db8b9b3f21d50db6cbd9762467de99ed752c3c72 Mon Sep 17 00:00:00 2001 From: IgorekLoschinin Date: Fri, 24 Sep 2021 23:44:09 +0300 Subject: [PATCH] ref #110 Bugfix in draw square and line. --- src/Core/Crawl/layout.cpp | 12 +++++++----- src/CrawlAbstractLvl/private/abslvlworld.cpp | 2 +- src/CrawlAbstractLvl/private/groupobstaclered.cpp | 6 +++++- 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/src/Core/Crawl/layout.cpp b/src/Core/Crawl/layout.cpp index b53ee3c..a08db99 100644 --- a/src/Core/Crawl/layout.cpp +++ b/src/Core/Crawl/layout.cpp @@ -89,6 +89,7 @@ void Layout::drawSquare() { } int height = qFloor(qSqrt(objects().size())); + int width = qFloor(objects().size() / height); int indObject = 0; for (auto idObj = objects().keyBegin(); idObj != objects().keyEnd(); idObj++) { @@ -96,9 +97,8 @@ void Layout::drawSquare() { float x = indObject % height; float y = qCeil(indObject / height); - GroupObject::updatePosition(*idObj, {x + _distance, - y + _distance, - 0}); + GroupObject::updatePosition(*idObj, {(x * _distance) - (height * _distance / 2), + (y * _distance) - (width * _distance / 2), 0}); indObject++; } @@ -113,8 +113,10 @@ void Layout::drawLine() { } float xObject = 0; - for (ClasterItem* object: objects()) { - GroupObject::updatePosition(object->guiId(), {xObject + _distance, 0, 0}); + float height = objects().size() * _distance; + for (auto idObj = objects().keyBegin(); idObj != objects().keyEnd(); idObj++) { + + GroupObject::updatePosition(*idObj, {(xObject * _distance) - (height/2 * _distance), 0, 0}); xObject++; } diff --git a/src/CrawlAbstractLvl/private/abslvlworld.cpp b/src/CrawlAbstractLvl/private/abslvlworld.cpp index 5df1998..1837687 100644 --- a/src/CrawlAbstractLvl/private/abslvlworld.cpp +++ b/src/CrawlAbstractLvl/private/abslvlworld.cpp @@ -38,7 +38,7 @@ CRAWL::WorldRule *AbsLvlWorld::initWorldRules() { } }, - {300, + {210, { {registerObject(), 1}, {registerObject(), 1} } diff --git a/src/CrawlAbstractLvl/private/groupobstaclered.cpp b/src/CrawlAbstractLvl/private/groupobstaclered.cpp index c22da23..f261e3f 100644 --- a/src/CrawlAbstractLvl/private/groupobstaclered.cpp +++ b/src/CrawlAbstractLvl/private/groupobstaclered.cpp @@ -12,7 +12,11 @@ namespace AbstractLvl { GroupObstacleRed::GroupObstacleRed(): CRAWL::IWorldItem(AUTO_CLASS_NAME) { - setDistance(20); + QQuaternion rotation = + QQuaternion::fromAxisAndAngle(QVector3D(0,1,0), 90); + + setDistance(7); + setRotation(rotation); changeLayout(CRAWL::LayoutType::LINE); for(int i(0); i < 4; i++) {