Проблемы с ...
Пишу игру, и на днях появилась проблемка. Когда приходит время начинать процедуру, вызванную зараннее forward-ом, игра виснет, можно выйти из ситуации если часто нажимать на кр кнопку, а потом отменять выход (nokia). В эмуляторе всё работает гладко, без ошибок. В этой же игре используется ещё одна процедура с forward-ом, но она работает прекрасно. Ни кто не сталкивался с этим?
PS: может проблема вообще не в нём. Используются библеотеки: arcade,keys,turn,font32,menu32,parse,memory. |
Ответ: Проблемы с 'forward'
Если так важно forward описание - попробуй вынести процедуру в модуль.
Но интуиция мне подсказывает что проблема не в этом. |
Ответ: Проблемы с 'forward'
Цитата:
Проблема может и не в этом, но в эмуле всё нормално работает, а на телефоне в зависимости от нажимания "часто нажимать на кр кнопку, а потом отменять выход" зависит будет работать или нет или с пониженным fps. |
Ответ: Проблемы с 'forward'
http://ru.wikipedia.org/wiki/Модуль_(программирование)
Почитай мануалы мидлетпаскаля, изучи примеры... И изучи, в конце концов, язык Pascal. |
Ответ: Проблемы с 'forward'
Попробовал код без forward та же проблема. Дык как можно это устранить? Такое чувство, что ему не хватает repaint'а.
|
Ответ: Проблемы с 'forward'
Распространенные причины зависона:
а) загрузка несуществующей картинки (то есть указал неверный путь). Соблюдай регистр, блеать! бэ) выход за пределы массива. Например - описано matrix:array [0..1] of integer; а в коде - matrix[2]:=100500; Это - явный путь в ступор приложения. вэ) Неверные математические функции. Делить на ноль МП не любит, так же, как и вычислять арктангес из 2, вычислить корень из отрицательно числа и прочее. гэ) "Неквадратные" массивы типов Image и String. То есть сделать img:array [0..5,0..15] не получиться. Код компилиться, а работать - фигушки. Такой вот неприятный баг. Ну вот вроде все. А вообще юзай дебаг, чтобы локализовать место ошибки, и устранить её. Удачи! P.S. Данные рекомендации написаны для версии 2.02. |
Ответ: Проблемы с 'forward'
Цитата:
|
Ответ: Проблемы с 'forward'
Проверь регистр расширений файлов. Эмулятор чисто пофигу на регистр, .png и .PNG для него едины.
А вот телефонам - в точности наоборот. Дебаг? Есть спец функция, но она работает только в эмуляторах. По этому я предпочитаю свою, велосипедную процедурку. Код:
procedure z(_z:string); Пример использования Код:
bla_bla_bla_bla_bla; |
Ответ: Проблемы с 'forward'
Проверил регистр, всё нормально. Игра зависает после использования процедур NewMap, MoveMap библиотеки arcade. Повторюсь, что она запускается, если её приостановливать и запускать несколько раз. Может это проблема в нокиа.
ЗЫ Может мне скинуть ту часть кода где виснет? |
Ответ: Проблемы с 'forward'
"ЗЫ Может мне скинуть ту часть кода где виснет?"
Годная идея. |
Ответ: Проблемы с 'forward'
Сократил как мог. |
Ответ: Проблемы с 'forward'
/map3test.CSV
Ты точно уверен, что соблюдил регистр? |
Ответ: Проблемы с 'forward'
Да. Может скинуть саму игру на других аппаратах потестить?
Ещё вопрос появился, а когда forward используется, оператика тем самым нагружается? |
Ответ: Проблемы с 'forward'
"Ещё вопрос появился, а когда forward используется, оператика тем самым нагружается?"
Вряд ли. Это просто указатель на то, что существует такая процедура/функция (где-то там, внизу). Ну а ты все таки сделай расширения файлов в нижнем регистре. Во избежание... |
Ответ: Проблемы с 'forward'
Нашёл 'причинное' место повисание, это NewMap(100,100, LoadImage('/sprites.png'),32,32); из arcade, у кого нидь были с ним проблемы?, недоработка либы? Знаю что если использовать разные значения клеток, те отрисовка не квадратом NewMap(100,50,..., то отображение не правильное. Хотя это похоже в другую тему.
|
Часовой пояс GMT +4, время: 00:03. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot