Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

Синхронизация динамических объектов с таймером в QML



  • Привет.
    Может кто подсказать, как правильно настроить работу с таймером в динамически созданном объекте в QML.
    Ситуация такая: объекты создаются динамически по таймеру:
    Timer
    {
    id: timerCreator
    interval: 3005 - level*100
    repeat: true
    running: false
    onTriggered: createball()
    }

    function createball()
    {
    var component = Qt.createComponent("Ball.qml");
    var object = component.createObject(mainform);
    var temp = parseInt(Math.random() * 300)
    ......
    }

    При это внутри этих объеков есть еще таймер, отвечающий за движение этих объектов:
    Timer
    {
    id: timerSpeed
    interval: 60 - level*2
    repeat: true
    running: false

    onTriggered:
    {
    ball.y +=dy
    lost()
    check()
    }

    Проблема какая: Я могу остановить таймер создания объектов. Могу, используя переменную остановить и таймер внутри динамических объектов - Но при запуске снова, объекты которые уже были на экране не двигаются, т.е. У них перестает действовать внутренний таймер, а новые объекты создаются и двигаются....

    Подскажите, как правильно заставить двигаться объекты после паузы.....



  • Получилось! Если я нажимаю на "Паузу", то я удаляю объеты, занося их данные в массив, после это создаю новые объекты с параметрами из этого массива...
    Если есть какое-то еще решение - жду предложений....



  • @Koljasha said:

    Timer

    1. имхо, много таймеров не айс. оставить один или ноль. создание, перемещение и прочие действия выполнять с привязкой к этому таймеру или просто к обновлению кадра.
      т.е. вместо индивидуальных таймеров можно использовать индивидуальные dy и т.п.
    2. вместо удаления можно просто скрывать объекты и повторно их использовать, меняя параметры.

Log in to reply