2016-12-01 2 views
-1

Я нахожусь в процессе создания мобильной игры с Corona SDK, основанной на Lua. До сих пор мне не нужна была помощь, но на этот раз я не могу найти причину, и я искал ее часами.Corona/Lua/расстраивающее умножение таймера

Это одна из проблем с таймером, когда после ухода, удаления и повторного просмотра сцены элементы, которые порождаются в цикле, просто размножаются при каждом повторном запуске. Более конкретно, каждый раз, когда происходит «запретное» столкновение, которое приводит к перезагрузке, согласно моей функции onCollision.

То, что я уже исправил после нескольких часов напряженного исследования:

--the кода внутри функции onCollision теперь внутри «начался» фаза, так, что не может привести к размножению

- фазы сцены также используются правильно

--transitions и таймеры все отменены прямо перед перезапуском

Поскольку код будет слишком долго для вас, чтобы просмотреть, я бы скорее sk для некоторых советов:

Что вы имеете в виду, может вызвать такие проблемы, помимо того, что я уже упомянул.

Я ценю каждый ответ! Большое спасибо.

+0

укажите код, если вы хотите получить помощь по коду ... – Piglet

+0

Трудно сказать, что не так. Возможно, вы проверите слушателей событий. – ldurniat

+0

Спасибо всем, я устранил эту проблему. Это было связано с неэффективным удалением сцены. Я исправил его, используя removeHidden() вместо removeScene(). – Footurist

ответ

0

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

В прошлом я нашел очень полезным назвать все мои объекты при столкновении с ними, поэтому, когда происходит столкновение, я знаю, какие объекты вызвали его, и это очень полезно для целей отладки.

Похоже, у вас возникла проблема с тем, как вы начинаете сцену и освобождаете ресурсы, когда сцена заканчивается. Вы можете начать/прекратить физику, когда сцена уйдет и вернется, но без кода я не могу дать конкретный ответ.

+0

Спасибо всем, я устранил эту проблему. Это было связано с неэффективным удалением сцены. Я исправил его, используя removeHidden() вместо removeScene(). – Footurist