Вниз  2D Платформер на MIDletPascal
- 17.02.2020 / 16:24
vl@volk
  Пользователь

vl@volk 
Сейчас: Offline
GOAR, значит это на андроиде проблемы. Там еще вроде есть метод для частичной перерисовки, может он поможит
__________________
 знает толк
- 17.02.2020 / 16:27
GOAR
  Пользователь

GOAR 
Сейчас: Offline
vl@volk, отрисовку и очистку ставлю один раз.
  если ставить delay (25) то мерцания нет, все работает.
но на скорость роботы программы падает оч, пробовал выводить fps так у меня с delay(25) fps:7 а без delay 58-60

крч без выходная ситуэйшен
- 17.02.2020 / 16:29
GOAR
  Пользователь

GOAR 
Сейчас: Offline
vl@volk, чё за метод? в форме show?
- 17.02.2020 / 21:29
Витаминыч
  Супермодератор

Витаминыч 
Сейчас: Offline
Цитата vl@volk:
возможно тебе cls не нужен https://www.kansoftware.ru/?tid=5122
крч, репаинт надо использовать только тогда, когда что-то отрисовал и надо обновить экран. Но не в каждой итерации цикла.
У тебя в целом неправильная последовательность. И ты в этом цикле ожидаешь ввод пользователя?

По идее должно быть так:
  1. procedure Cls;
  2. begin
  3.   SetColor(0, 0, 0);
  4.   FillRect(0, 0, GetWidth, GetHeight);
  5. end;
  6.  
  7. procedure Game;
  8. begin
  9.   repeat
  10.     Cls;
  11.     // что-то отрисовывается
  12.     Repaint;
  13.     Delay(24);
  14.     // Ожидание ввода команд (нажатие клавиш/тап по экрану)
  15.   until false;
  16. end;

Вот здесь работает иначе, у меня там нет таких циклов. У тебя оно так и будет мигать скорее всего, пока не изменишь условие этого цикла и не добавишь процедуры. Если надо, могу примеры скинуть.
__________________
 わからない!!

Изменено Витаминыч (17.02 / 21:30) (всего 1 раз)
- 17.02.2020 / 22:00
vl@volk
  Пользователь

vl@volk 
Сейчас: Offline
Витаминыч, прост на экране могут двигаться объекты, поэтому перерисовывать надо часто. В джава ме помню был частичный репейнт, когда обновлялись только те области которые изменились
__________________
 знает толк
- 17.02.2020 / 23:10
Витаминыч
  Супермодератор

Витаминыч 
Сейчас: Offline
vl@volk, ну тут для такого библиотека нужна, где все эти методы в процедуры закодировали. У него то ничего не двигается, смысл так часто перерисовывать. Даже на компе если запускать что-то в qbasic, то скорость отрисовки норм, а вот в той же программе, но собранной в QB64 все мгновенно - Пост #416630

Остается оптимизировать, оптимизировать и оптимизировать.
__________________
 わからない!!
- 18.02.2020 / 00:11
vl@volk
  Пользователь

vl@volk 
Сейчас: Offline
Витаминыч, возможно. Наверное просто мерцает из-за того что криво отрисовка реализована в рантайме мидлетпаскаля для андроида. Надо фиксить, гг
__________________
 знает толк
- 18.02.2020 / 06:31
GOAR
  Пользователь

GOAR 
Сейчас: Offline
vl@volk, Витаминыч, за примеры буду благодарен. и ты говорил lib нужна.

у тебя всё и за того что delay(24), с таким условием у меня тоже отрисовку гуд.
но сказывается на скорости из 60 ФПС стает 11-7. :-(
- 18.02.2020 / 11:00
Magatino
  Администратор

Magatino 
Сейчас: Offline
GOAR, На жабке пиши, но там будут другие проблемы :gg:
- 18.02.2020 / 11:08
Витаминыч
  Супермодератор

Витаминыч 
Сейчас: Offline
GOAR, если ты только начал, то попробуй пока стандартными средствами обойтись. С либами можешь запутаться. Но если они нужны, то сюда - Пост #468209

Ты хоть какую-то играбельную основу сделай, и потом запили нормальный счетчик.

Пример

А вообще, я щас для теста собрал пример из ампасиде Cubes (это из заставки тараканчиков, только универсальная) - ничего не мигает, скорость отрисовки такая же, как в яве. Дай-ка код счетчика фпс, мне даже интересно стало, что ты там такое накодил :gg:
__________________
 わからない!!


Прикрепленные файлы:
Cubes.apk (203.13 кб.) Скачано 220 раз
Наверх  Всего сообщений: 91
Фильтровать сообщения
Поиск по теме
Файлы топика (15)