Игра JavaScript; замедление и замораживание! Как решить его?

Да, можно создавать несколько учетных записей разработчиков. Что мы делаем, так это то, что каждый разработчик имеет учетную запись разработчика Apple и генерирует собственный сертификат разработки. В основной корпоративной учетной записи (учетной записи командного агента) мы создаем профили обеспечения разработки и распространения, используемые всеми. У Apple есть понятное и полезное руководство по созданию группы разработчиков.

Сертификат каждого разработчика добавляется в профиль разработки; это означает, что каждый разработчик может использовать этот профиль разработки для запуска приложения на своих телефонах. По умолчанию Xcode подберет свой сертификат разработки, связанный с этим профилем (если идентификация подписи кода в настройках проекта установлена ​​на «Автоматический выбор профиля»> «Разработчик iPhone»).

К сожалению, для профиля распространения вы не можете добавить какой-либо другой сертификат, кроме сертификата для распространения , который вы создали из своей корпоративной учетной записи. Простой обходной путь - просто предоставить полный сертификат распространения (открытый + закрытый ключ и сертификат) всем разработчикам, которые должны иметь возможность создавать сборку распространения для приложения (для небольшой команды, такой как наша, мы просто делимся дистрибутивом). Сертифицировано со всеми). Вы можете легко экспортировать этот сертификат из Keychain Access.

После того, как разработчики добавят этот сертификат распространения в свою цепочку ключей, он также будет автоматически выбран Xcode во время сборки распространения (при условии, что идентификация подписи кода для соответствующей конфигурации сборки установлена ​​на "Распространение iPhone").

Кроме этого, я не совсем понимаю, как можно преодолеть ограничение в 100 устройств, поскольку все устройства должны быть добавлены к одной учетной записи (учетной записи корпоративного / командного агента).

7
задан DFectuoso 12 June 2009 в 05:27
поделиться

3 ответа

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

Я думаю, это происходит, когда движущийся div пересекает верх контейнера с красным фоном.

2
ответ дан 7 December 2019 в 12:24
поделиться

Yes, thats right: the delay is because when there are too many monsters, there are too many position updates that need to be done. This causes the "redraw" delay..

I see that there is a DOM element for each monster(as should be the case). But, you are updating their positions one by one.

Tips to reduce this lag:

Firstly, it would be a better stategy to update their positions en masse:

<div id='monster-container'>
   <div id='monstser-1'></div>
   <div id='monstser-2'></div>
   <div id='monstser-3'></div>
</div>

So update the position of '#monster-container' when the monsters move. This way redraw time will definitely be minimized. What I say is from a primitive understanding of your game. You may need to modify this approach depending upon the path of the monsters. My approach will work directly only if the monsters only move in a straight line.

  • Secondly, if you are using img's for the monsters, consider using div's, and set the images as backgrounds of the div. This has given faster redraw performance in many of my pet games.

  • Thirdly, if you are using individual images for the monsters, consider using a composite image and CSS spriting.

Wish you luck with your game! Cheers!!

jrh

2
ответ дан 7 December 2019 в 12:24
поделиться

Да, это определенно сборщик мусора. Я сам занимаюсь разработкой игры на JavaScript, и последние несколько дней я потратил на то, чтобы избавиться от этой проблемы. Пока могу сказать, что это невозможно.

Тем не менее, я хотел бы отметить, что разные браузеры имеют разные сборщики мусора, и, например, в Safari 4 ваш пример работает идеально.

А вот интересная ссылка на эту тему: Уменьшение зависания с помощью Пул объектов

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

Также я ' Мы переписали ваш пример, чтобы проверить, не влияют ли глобальные переменные на производительность. Вы можете сами увидеть разницу

1
ответ дан 7 December 2019 в 12:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: