Я пытаюсь понять, как правильно перемещать объекты «препятствия» в короне/box2d. Я хочу знать, как написать свой код, чтобы движение было детерминированным и в ногу с физическим движком. Это возможно?Как перемещать объекты "препятствия". Corona SDK Physics Box2D. Обновление физики?
Я знаком с Unity, который имеет физическое обновление (FixedUpdate). Где вы можете добавить немного кода для выполнения на каждом этапе физики. Это позволяет физическим детерминированным, рамным и системным временным независимым.
Например, в моей игре я хочу делать такие вещи, как: Создавать платформу, которая перемещается вперед и назад, создавать объект, который масштабируется вверх и вниз по размеру. Мне все равно хотелось бы, чтобы физика работала правильно и позволила мячу в моей игре отскакивать от них, например. В зависимости от случая, я полагаю, что я должен использовать либо kinematic or dynamic bodies.
Я искал вокруг и способ периодически управлять этими объектами является использование:
- timer.performWithDelay. Но это проблема, упомянутая в документах «Таймеры запускаются в системное время. Если приложение приостановлено, запуск таймеров не будет автоматически приостановлен»
- Прослушивание события enterFrame. Но это имеет аналогичную проблему, если частота кадров падает, тогда объект не будет перемещен достаточно. Мы можем использовать дельта-время, чтобы справиться с этим, но это имеет проблемы детерминизма (слишком много перемещает объект по шишке запаздывания).
- transition.to. Я предполагаю, что это реализовано с помощью timer.performWithDelay и имеет те же проблемы.
Я не думаю, что любой из них будет вести себя детерминированным. Какие-либо предложения? Спасибо за помощь.
Я не знаю других методов. «Таймеры запускаются в системное время. Если приложение приостановлено, запуск таймеров не будет автоматически приостановлен» действительно ли проблема? Вы можете обнаружить, когда приложение приостановлено. Подробнее [Учебное пособие: обработка событий системы Corona] (https://coronalabs.com/blog/2012/05/15/handling-corona-system-events/). – ldurniat
Кажется, что у физики есть все эти побочные эффекты времени. :(Я думаю, что на самом деле нужно просто запустить «шаг блокировки» с обновлением физики. Событие «enterPhysicsStep» может решить этот – 1337Rooster
, вы попробовали группу отображения, чтобы иметь их вообще? – Amir