| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия |
| articles_optimisation_howtooptimise [2024/05/11 17:00] – admin | articles_optimisation_howtooptimise [2024/05/11 17:24] (текущий) – admin |
|---|
| * Если вы загружаете изображение меньшего размера и масштабируете его во время выполнения, оно использует объем памяти как меньший размер (по крайней мере, мне так сказали). Таким образом, изображение размером 100×100, масштабированное до 400×400, по-прежнему будет использовать тот же объем оперативной памяти, что и изображение размером 100×100 пикселей. | * Если вы загружаете изображение меньшего размера и масштабируете его во время выполнения, оно использует объем памяти как меньший размер (по крайней мере, мне так сказали). Таким образом, изображение размером 100×100, масштабированное до 400×400, по-прежнему будет использовать тот же объем оперативной памяти, что и изображение размером 100×100 пикселей. |
| * Если изображение действительно большое, подумайте, можно ли его разбить на более мелкие части. Например, если у вас длинное фоновое изображение, можете ли вы разрезать его на несколько частей, соответствующих лучшим степеням 2? Это сэкономит много памяти | * Если изображение действительно большое, подумайте, можно ли его разбить на более мелкие части. Например, если у вас длинное фоновое изображение, можете ли вы разрезать его на несколько частей, соответствующих лучшим степеням 2? Это сэкономит много памяти |
| * Альфа-каналы истощают память, как вампир. Используйте трансп. Цвет в редакторе анимации. | * Альфа-каналы истощают память, как вампир. Используйте прозрачность в редакторе спрайта. |
| |
| ===== Оптимизация вашего кода с помощью активных/неактивных групп ===== | ===== Оптимизация вашего кода с помощью активных/неактивных групп ===== |
| ===== Контроль событий ===== | ===== Контроль событий ===== |
| |
| Используйте условия, чтобы ограничить область действия. например, проверив, что «количество объектов больше 0» при определении области действия, это останавливает проверку других условий, если этот конкретный объект отсутствует: « Количество («Активных»)>0″ | * Используйте условия, чтобы ограничить область действия. например, проверив, что «количество объектов больше 0» при определении области действия, это останавливает проверку других условий, если этот конкретный объект отсутствует: « Количество («Активных»)>0″ |
| + Другое условие («Активный ») | + Другое условие («Активный ») |
| +Другое условие («Активное») «Если количество {частиц} больше 0 > выполните это» условие. В противном случае Fusion может тратить много времени на проверку памяти, когда в этом нет необходимости.сравнениеNumberOfObjects | +Другое условие («Активное») «Если количество {частиц} больше 0 > выполните это» условие. В противном случае Fusion может тратить много времени на проверку памяти, когда в этом нет необходимости.сравнениеNumberOfObjects |
| По возможности избегайте таймера. Если игра лагает, таймеры усугубляют проблему. Вместо этого создайте собственные таймеры с переменными. | * По возможности избегайте таймера. Если игра лагает, таймеры усугубляют проблему. Вместо этого создайте собственные таймеры с переменными. |
| |
| | ===== Событие «Всегда» ===== |
| | |
| | Будьте осторожны с использованием события Always. Всегда означает, что Fusion пытается запускать эту строку кода каждый кадр, каждую секунду, поэтому при частоте 50 кадров в секунду эта строка кода выполняется 50 раз в секунду. Если вам нужно его использовать, ничего страшного, просто знайте, как он себя ведет, и убедитесь, что это лучший способ достичь результата. |
| | |
| | ===== Столкновения ===== |
| | |
| | Избегайте условий перекрытия, поскольку они используют больше памяти, чем обнаружение прямых столкновений. |
| | |
| | ===== Звуки ===== |
| | |
| | Чем больше размер файлов ресурсов, например музыкальных файлов, тем медленнее будет работать игра, поскольку ей приходится хранить их в памяти. Чтобы использовать MP3, вам, возможно, придется заплатить лицензионные отчисления, но вы можете преобразовать WAV в файл OGG с помощью бесплатной программы Audacity. OGG бесплатны и намного меньше WAV. Вы сможете использовать их на Android или iOS, а также на ПК. |
| | |
| | ===== Альтернативы Fastloops ===== |
| | |
| | Fastloops может съедать много памяти и замедлять мобильные или Flash-игры (по крайней мере, так было раньше, сейчас якобы стало лучше). Лучше всего использовать альтернативные решения, где это возможно. |
| | Хорошей альтернативой движению платформы движениям fastloop является объект PMO. |
| | Одной из альтернатив является цикл «Для каждого». Это намного быстрее, чем fastloops. |
| | Если вы не можете использовать цикл «Для каждого», попробуйте вообще не использовать циклы. Будьте изобретательны: почти всегда есть решение. |
| | |
| | ===== Оптимизация быстрых циклов ===== |
| | |
| | Именно команда «On Loop» вызывает замедление. Вы можете уменьшить замедление, поместив все условия «В цикле» внутри неактивной группы и активируя группы только при запуске быстрых циклов, а затем деактивируя их, когда они снова не используются. Когда считывается условие «В цикле», Fusion проверит все остальные условия и события «В цикле» в вашей игре, прежде чем запускать цикл или делать что-либо еще. И это происходит для каждой команды «В цикле». Помещая их в неактивные группы, Fusion не будет читать их, пока они не понадобятся, поскольку Fusion не будет ничего читать внутри неактивной группы. |
| | |
| | ===== Использование объектов или счетчиков для хранения переменных ===== |
| | |
| | Обычно активные объекты или счетчики размещаются за пределами экрана для хранения переменных. Если вы сделаете их невидимыми, сняв флажок «Видимые при запуске», вы будете использовать меньше памяти. |
| | |
| | ===== Текст ===== |
| | |
| | Текст, как и строки и текстовый объект, может привести к замедлению работы, если он регулярно изменяется или обновляется во время выполнения. Если они не меняются, то с ними все в порядке. |
| | Вместо этого используйте растровые счетчики, где это возможно, поскольку они намного быстрее — растровые изображения, как в изображениях, например, стандартный объект-счетчик 0–9. |
| | |
| | ===== Рукописный ввод ===== |
| | |
| | Эффекты рукописного ввода могут сильно замедлять работу, особенно в мобильных или веб-играх. |