mirror of
https://github.com/wownero/wowlet.git
synced 2026-10-29 04:08:43 +01:00
feat(scene): per-lap variety, the occasional face-plant, and a sky per tab
Every tab was running the identical eight seconds forever. Three changes: - Each lap rolls its own timing: 3-5s of empty field, and the money now enters on its own delay at its own pace instead of shadowing the doge every time. - Roughly one lap in six the doge eats it partway down the field: he tips nose-first onto the grass, GAME OVER comes up, and the coins he never reached are still sitting there. Costs no new art — it is the running sprite pivoted on its own feet. - A `variant` on SceneWidget picks the sky: dusk (History, lock screen), dawn (Receive), night (Send, with stars and a moon instead of the sun). The cycle is now a timer-driven state machine rather than one SequentialAnimation. That is not stylistic: a lap that rolls its own durations has to assign them somewhere, and assigning a duration to a child of a *running* SequentialAnimation makes the group recompute and re-enter its own ScriptAction until the JS stack blows. Qt flags the binding form of the same mistake as a binding loop. Verified by headless qml6 render: a forced trip lap, and a clean run with no QML warnings.
This commit is contained in:
@@ -7,11 +7,12 @@
|
||||
|
||||
#include "utils/config.h"
|
||||
|
||||
SceneWidget::SceneWidget(QWidget *parent)
|
||||
SceneWidget::SceneWidget(QWidget *parent, Variant variant)
|
||||
: QQuickWidget(parent)
|
||||
, m_backend(new SceneBackend(this))
|
||||
{
|
||||
m_backend->setReducedMotion(conf()->get(Config::reducedMotion).toBool());
|
||||
m_backend->setVariant(static_cast<int>(variant));
|
||||
this->rootContext()->setContextProperty("sceneCtx", m_backend);
|
||||
this->setResizeMode(QQuickWidget::SizeRootObjectToView);
|
||||
this->setSource(QUrl("qrc:/qml/scene.qml"));
|
||||
|
||||
Reference in New Issue
Block a user