Почему, когда Вы перевели игру, она не запускается или работает неправильно?
Причин может быть очень много и самые разные, например:
1) При переводе классов была случайно переведена служебная строка (например, путь к файлу или изображению), ошибки такие:
Code
>>java.lang.NullPointerException
2) При переводе других файлов не соблюдены размеры строк или смещены игровые данные, ошибки обычно такие:
Code
>>java.lang.NegativeArraySizeException
>>java.lang.ArrayIndexOutOfBoundsException
3) Картинки были неправильно упакованы в архив или зашифрованы
4) Ошибки в рисованных шрифтах
и т.д.
В этом случае, чтобы узнать, какая конкретно ошибка и из-за чего, надо воспользоваться журналом операций (logFrame) в kemulator’e
Например строки:
Code
Custom.jar.getResourceStream: part2.rc (160571)
>>java.lang.NegativeArraySizeException
>> at al.a(Unknown Source)
>> at ah.a(Unknown Source)
>> at ah.a(Unknown Source)
>> at basic.BeginMidlet.a(Unknown Source)
>> at c.a(Unknown Source)
>> at ag.a(Unknown Source)
>> at ah.a(Unknown Source)
>> at ai.a(Unknown Source)
>> at ah.a(Unknown Source)
>> at basic.BeginMidlet.a(Unknown Source)
>> at t.run(Unknown Source)
>> at java.lang.Thread.run(Unknown Source)
показывают, что файл part2.rc некорректен.
Строка в логе Custom.jar.getResourceStream: — означает загрузку ресурсов, строка >>at al.a(Unknown Source) показывает, в каком классе игры и методе произошла ошибка, а это » >>java.lang.NegativeArraySizeException» — название ошибки
Бывает, что разработчики игр при возникновении ошибки выдают информацию. Например, в играх от EA при использовании pngout (сжатие картинки), игра зависала с такой ошибкой:
png error! check it! use pngout?
А бывает и такое, что эмулятор даже и не запускается, вылетает сразу без возможности просмотра лог-файла. Такое было в играх от CWA при переводе 3D игр — если в файле применить запятую, игра вылетала. В этом случае поможет сохранение лог файла. Откройте каталог с эмулятором и найдите файл log.txt — в нем и будет ошибка, например для игры War Crisis — Pharaohs Fury 3D (China):
Code
Custom.jar.getResourceStream: Data/script/a.cwa (14427)
>>/Data/script/a.cwa error!!
>>initGlobal error!!
Notify Destroyed
Exiting Emulator
Сразу видно, что ошибка в файл a.cwa
Итак, для успешного исправления ошибок надо знать и уметь пользоваться той информацией, которую нам дают разработчики игры и эмулятор.
Автор урока -
wakko,
вот его сайт.