Ответ: Общие советы по оптимизации MIDlet Pascal / Java2me программ
сериес40 (все что цветное и не смарт)
|
Ответ: Общие советы по оптимизации MIDlet Pascal / Java2me программ
Вот пример участка кода, который отвечает за отрисовку объектов (взято с помощью декомпиляции):
PHP код:
В итоге, после упрощения получим что-то типа такого: PHP код:
Вы вообще слышали, что существуют специальные библиотеки для работы со спрайтами? |
Ответ: Общие советы по оптимизации MIDlet Pascal / Java2me программ
предметов больше чем цифр, вот и перешел на буквы.
выбор шрифта в другом месте стоит, хз почему он у тебя там)) а вот else можно и наставить))) |
Ответ: Общие советы по оптимизации MIDlet Pascal / Java2me программ
Главное ускорение всё же в использовании локальных переменных а и b.
Попробуй хотя бы их добавить в программу, FPS вырастет, я думаю как минимум раза в 2. И используй числа, а не цифры для обозначения типа юнита. 4 миллиардов значений должно хватить. Чего нельзя сказать о цифрах и буквах. |
Ответ: Общие советы по оптимизации MIDlet Pascal / Java2me программ
декомпиль + моя логика видимо помешали твоему восприятию программы.
(i * 60 - j * 4) + l * 6 + 26; считается и так по одному разу для каждого значения i и j перейти на цифры можно, попробую)) а вообще я добился уже 2.5 фпс, чего при пошаговом перемещении хватит (прощитал все деления зарание + более грамотно реализовал задержку) |
Ответ: Общие советы по оптимизации MIDlet Pascal / Java2me программ
а можно еще про kzip поподробнее?
в смысле как им паковать. нормальной инструкции нет + консольными архиваторами не пользовался и еще вопрос о каком именно kzip'е идет речь? есть аналог винзипа для линя с таким названием и консольный на 15кб учитывая сколько я времени потратил на переход на цифры (так и не закончил), прирост менее 10000% считается маленьким... |
Ответ: Общие советы по оптимизации MIDlet Pascal / Java2me программ
kzip сам консольный, весит 15 кб.
Я архивирую так: просто перекидываю все нужные файлы в папку с kzip.exe, потом с консоли ввожу такую команду: PHP код:
|
Ответ: Общие советы по оптимизации MIDlet Pascal / Java2me программ
MidletPascal - 868166 байт
kzip - 868240 байт и правда экономия))) |
Ответ: Общие советы по оптимизации MIDlet Pascal / Java2me программ
Как ты сжимал? У меня твоя прога сжимается так:
Было: 873263 Стало: 864136 А если твои картинки объединить в один пакет, то сжимать будет намного лучше. |
Ответ: Общие советы по оптимизации MIDlet Pascal / Java2me программ
ты жмешь офф версию, с тех пор многое изменилось))
последняя тестовая дала такие результаты) кстати в офф картинки не тронуты, а по тестовой прошелся пнгаутом |
Ответ: Общие советы по оптимизации MIDlet Pascal / Java2me программ
ста, что лучше для экономного расхода памяти:
1. описать глобальную переменную в качестве параметра цикла, которую будут использовать три процедуры. или 2. в каждой из трех процедур описать локальную переменную в качестве параметра цикла. спасибо. , пожалуйттеобъясни |
Ответ: Общие советы по оптимизации MIDlet Pascal / Java2me программ
Могу добавить насчет экономии памяти.
Не следует загружать сразу все ресурсы в память. Обычно это относиться к РПГ играм, так как картинок в РПГ чуть больше, чем дофига. Обычно новички сразу все загружают в память и это - не есть хорошо. Лучше, если загружать только те картинки, которые собираются быть использованными в текущее время и постоянно. Пример: Есть туча изображений монстров и не меньшее количество изображений вещей (иконки). Загружаем изображения монстров (иконки не трогаем) в массив, например, Monsters_image:array [1..50] of image. Ходим, бьем их и т.д. И вдруг нам понадобилось взглянуть в инвентарь. Нам необходимо загрузить иконки. Но перед этим необходимо "очистить" массив Monsters_image. "Очистить" изображения можно, присвоив каждому элементу массива "пустое" изображение. Пример "пустого изображения": null:image; (по умолчанию тип image является одиночным пикселем белого цвета, и занимет 4 байта). Теперь грузим иконки. После того, как игрок вышел из меню инвентаря, таким же способом "очищаем" иконки и загружаем изображения монстров обратно. Плюс: экономия (значительная!) памяти. Минус: Каждый раз при входе и выходе из меню инвентаря на загрузку ресурсов уходит 1-2 секунды (зависит от количества изображений и телефона) |
Ответ: Общие советы по оптимизации MIDlet Pascal / Java2me программ
вопрос: шла речь о "сделайте перерисовку только этой области, а не всего дисплея."
repaint отрисовывает весь экран. как отрисовать именно нужный участок? и еще: как правильнее объявить переменную tmpGlob в таком случае (т.е. результат функции не нужен). использовать глобальную или создать локальную? к глобальной доступ медленнее, локальная - память занимает...... Код:
procedure _light_on; 1) в отличии от делфей, в мидлет паскаль в условии проверяется всегда оба логических выражения, что может приводить к ошибкам: Код:
program a; Код:
for i:=0 to L do ... 3) для циклов быстрее всего выполняется условие Код:
const Код:
while i<=MAXIND do ... Код:
while i<MAXIND+1 do ... |
Ответ: Общие советы по оптимизации MIDlet Pascal / Java2me программ
Может быть и оффтоп, но статья довольно полезная: Игровые циклы или ЭлектроКардиоГама
|
Ответ: Общие советы по оптимизации MIDlet Pascal / Java2me программ
Разве многопоточность увеличит скорость выполнения?
И я так и не понял, в чем плюс локальных переменных? Попробовал - вроде ничего не изменилось |
Часовой пояс GMT +4, время: 10:13. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot