Ответ: Lib_game (Game API Support)
Скажите в чём проблема? У меня мидлет виснет на строчке game.init;
Соответствующие либы лежат в папке Libs, MP версии 2.02 Вот код программы: program LandScroll; uses game, sprite, tile; var hero:integer; begin //....... game.init; {если её пропустить, то доходит до sprite.append(hero);} sprite.init(2); setcolor(0,255,0); fillrect(0,0,240,320); repaint; hero:= sprite.create_frames('/hero/walk/walk.png', 29, 39); {png-файл размером 116х312} setcolor(255,0,0); fillrect(0,0,240,320); repaint; sprite.append(hero); {Потом виснет на этой строчке} setcolor(0,0,255); fillrect(0,0,240,320); repaint; //.... end. |
Ответ: Lib_game (Game API Support)
я думаю он не виснет, а просто не находит файл /hero/walk/walk.png
МР не умеет класть ресурсы в папки, он их все пихает в корень. |
Ответ: Lib_game (Game API Support)
Я вручную прописываю пути к файлам, и они после компиляции лежат по папкам внутри мидлета. Может быть библа ненаходит файл? Попробую положить в файлик в корень.
|
Ответ: Lib_game (Game API Support)
пропущено game.show;
и нужно использовать game.refresh; вместо repaint; при вызове sprite.create_frames в качестве параметров указываются ширина и высота фрейма, т.е. кадра. Ширина и высота картинки, соответсвенно, должна быть кратна им, иначе система не может корректно создать спрайт и виснет на этом шаге. 116 на 29 вроде не делится. |
Ответ: Lib_game (Game API Support)
Спасибо, я понял в чём проблема. Маленькие файлы открываются без проблем, а мой размером в 47,7Kb ни в какую не хочет. Что делать?
.... Уменьшил размер файла до 33,1Kb и всё заработало, правда качество картинки пострадало :( Если вы хотите чтобы ресурс лежал внутри мидлета в папке, то перед компиляцией откройте файл *.mpproj блокнотом и впишите туда соответственный путь к файлу. |
Ответ: Lib_game (Game API Support)
Блин, а почему нельзя использовать стандартные средства вывода графики совместно с библиотеками Game_api? Или может ли переменная, используемая в библиотеке, повлиять на переменную в моей программе?
|
Ответ: Lib_game (Game API Support)
Кстати, не знаю почему, но вроде бы у меня стандартные графические средства МП работают быстрее, чем Lib_game.
|
Ответ: Lib_game (Game API Support)
Cliffe Snake, а кто сказал, что их нельзя использовать? можно
Romanzes, все зависит от реализации ява машины. Может где-то и быстрее. Ведь Lib_game работает через индексы, хотя я думаю это критично только для гонок, например. |
Ответ: Lib_game (Game API Support)
Всё разобрался во всём, спасибо за такую полезную либу =)
|
Ответ: Lib_game (Game API Support)
Pilgrim, у меня к тебе ещё один вопрос.
Почему после game.init; функции getkeyclicked и getkeypressed перестают работать(т.е. всегда возвращают "0"), а набора в 9 клавиш (Right,Left,Up,Down,Fire,7,9,*,#) катастрофически не хватает :'( Как можно деинициализировать библу?(Мол попользовался библой и вырубил её, а потом снова включил и т.д.) Или как работать в либе game с другими клавишами? |
Ответ: Lib_game (Game API Support)
Обновил библиотеку. getKeyPressed теперь работает.
Отключается она простым переходом, например showCanvas. Включается потом, через game.show PS: init теперь с параметром!!! |
Ответ: Lib_game (Game API Support)
Помогите, что не так. Написанный мидлет просто показывает белый экран.
Program New1321; uses sprite, tile, game, fmove; type msprite=record id:integer; end; var x,y,i,z:integer; man:msprite; begin sprite.init(1); game.init(0); game.set_view_window(0,0,128,160); x:=4; y:=74; man.id:=sprite.create_frames('/vorman.png',8,12); sprite.append(man.id); sprite.set_ref_pixel(man.id,4,6); sprite.set_position(man.id,x,y); i:=2; z:=-1; game.show; repeat z:=z*(-1); sprite.move(man.id,x,y); sprite.paint(man.id); if z=1 then sprite.next_frame(man.id); if z=-1 then sprite.prev_frame(man.id); if x>124 then begin sprite.set_transform(man.id,2); i:=i*(-1); end; if x<4 then begin sprite.set_transform(man.id,0); i:=i*(-1); end; x:=x+i; game.refresh; delay(500); until getkeyclicked=ke_key0; end. |
Ответ: Lib_game (Game API Support)
Удали строчку Game.show; и вставь её после game.init; больше ошибок не вижу
|
Ответ: Lib_game (Game API Support)
Всё равно белый экран!
|
Ответ: Lib_game (Game API Support)
В коде всё правильно. Там чувак сам по себе должен то вправо, то влево бегать. Значит у тебя ошибка с расположением файлов.
Библиотеку распаковал в Libs? Проверь все файлы. Самый простой способ найти ошибку, это запустить проект у себя на компе, так что давай выкладывай сюды исходник. |
Часовой пояс GMT +4, время: 12:24. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot