Вниз  RFO BASIC
- 10.02.2015 / 17:15
oslopov1991
  Пользователь

oslopov1991 
Сейчас: Offline
Magatino, на твой пост (#400335) отвечу, Этот код не окончательный, а только базовый. И его можно по разному изменить. Зато он может строить карты из отдельных картинок как в старых игровых приставках и к томуже даёт скроллинг карты и нормальную скорость. Его просто нужно дополнять новыми картинками, координатами и поменять скорость прокрутки. И не надо мне говорить о теории постронения игр. Я от и до изучил работу процессора nes и процессор sega работает почти также, только в нем планов больше и скроллинг можно делать частями. К томуже он рассчитан именно на спрайтовый режим как наиболее постой для освоения и понимания. Код ещё в разработке и он будет подогнан под любые разрешени и маленький размер, насколько это возможно.

Изменено oslopov1991 (10.02 / 17:19) (всего 1 раз)
- 10.02.2015 / 17:19
Magatino
  Администратор

Magatino 
Сейчас: Offline
oslopov1991, Дык, тут дело в оптимизации, вот как это на Java:
  1. for (int j=0;j<Map_height;j++)
  2. for (int i=0;i<Map_width;i++)
  3. {
  4.  
  5. tile=map[j*Map_width+i];
  6.  
  7. //В моём случае нулевой тайл обозначается как пустая клетка, следовательно его не надо рисовать
  8. if (tile!=0)
  9. g.drawImage(tile_image[tile], i*tile_width+x, j*tile_height+y, 20);
  10.  
  11. }

Осталось добавить отсечение тайлов :gg:
- 10.02.2015 / 17:24
oslopov1991
  Пользователь

oslopov1991 
Сейчас: Offline
ВитаминКО, на твой пост (#400327) отвечу, А ты его тестил на дроиде? Лучше выставки скролл на 4-8 пикселов в условиях смещения по определенному направлению. If wnew>wold then x=x+1 например направление по горизонтали вправо на один пиксел за цикл.
- 10.02.2015 / 17:36
oslopov1991
  Пользователь

oslopov1991 
Сейчас: Offline
Magatino, на твой пост (#400375) отвечу, Так нулевому тайгу, то есть самому верхнему левому я могу дать просто координаты x,y те что вычислены из условиях определяющих направление скроллинга. И код будет все равно работать. А суть здесь в том что каждый тайл это текущее смещение плюс положение тайла в сетке. Положение в сетке это размер тайла в пикселахпомноженный на его порядковое место в сетке. Такое дело для обоих координат и на каждый тайл персонально. Ну конечно можно заменить список начальных позиций на генератор координат, но мне пока проще подрисовывать по кусочкам тайлы, чтоб они смотрелись хорошо с остальными. Можно контролировать процесс подгонки тайлов друг к другу. Поэтому оптимизировать буду только после того как нарисую всю графику и она будет такой км и задуманно. Для рисования персонажей будет совсем другой код.
- 10.02.2015 / 17:51
Magatino
  Администратор

Magatino 
Сейчас: Offline
Цитата oslopov1991:
Magatino, на твой пост (#400375) отвечу, Так нулевому тайгу, то есть самому верхнему левому я могу дать просто координаты x,y те что
Нулевой тайл, это не первая ячейка это пустой тайл, короче тот код ты ещё не скоро поймёшь, что он делает, займись оптимизацией :gg:

ВитаминКО,
Тормоза будут, ибо он не предусмотрел отсечение не видимых тайлов ( которые за экраном) :gg:

Изменено Magatino (10.02 / 17:55) (всего 1 раз)
- 10.02.2015 / 17:52
oslopov1991
  Пользователь

oslopov1991 
Сейчас: Offline
Magatino, на твой пост (#400375) отвечу, Отсекать тайлы можно. Например и рисовать за экраном не всю картинку, а только строку или столбец тайлов, потом сдвигать пока скрытые тайлы не появятся, затем отсекать те тайлы сто уехали за экран и далее по кругу. Так например платформера на денди делались. Там ещё нельзя было назад вернуться. Они одним килобайтом под карты обходились на ранних порах. Андроид позволяет строить огромные карты, а показыватьи ишь часть так почему же этоине использовать. Зачем отсекать тайлы. Это только для написания эмуляторов можно пользовать. Для корректности вывода.
- 10.02.2015 / 17:57
oslopov1991
  Пользователь

oslopov1991 
Сейчас: Offline
Magatino, на твой пост (#400384) отвечу, Я пробовал заполнить одинаковыми тайлами сетку 1024х1024. Ничего не тормозило никак. Хотя экран был только 1024х552 пиксела, а каждый тайл 64х64 пиксела. Проблем со скролом не увидел, выставлял разную скорость все норм летает. Где вы тормоза увидели?
- 10.02.2015 / 18:03
oslopov1991
  Пользователь

oslopov1991 
Сейчас: Offline
ВитаминКо, посмотри мой код из начала темы, тот что четыре большие картинки с разрешением 1024х1024 каждая, там нет тормозов хотя общее разрешение полученной картинки больше разрешения экрана. На планшете explay у меняивсе норм летает. Вот просто попробуй поэкспериментировать со скорость, размерами, числом картинок можно для этогоидела склеить несколько скриншотов с рабочего стола. Код будет скролить. Так что о тайлах за экраном можно не беспокоиться. Полтора гигагерца проца хватает на такие размеры.
- 10.02.2015 / 18:06
oslopov1991
  Пользователь

oslopov1991 
Сейчас: Offline
Цитата Magatino:
oslopov1991, Дык, тут дело в оптимизации, вот как это на Java:
[code]
for (int j=0;j<Map_height;j++)
for (int i=0;i<Map_width;i++)
{

tile=map[j*Map_width+i];

//В моём случае нулевой тайл[/c
Так может в этом бейсике нет нулевого тайла как такового.
- 10.02.2015 / 18:13
oslopov1991
  Пользователь

oslopov1991 
Сейчас: Offline
Magatino, на твой пост (#400375) отвечу, Я понял код. Циклы вычисляют позицию тайла, если он за пределами экрана, то тайл не выводится. Это типа гашения тайлов в видеопроцах. Погасить строку или столбец тайлов. Ау как быть со случаем, когда одна часть тайла за экраном, а другая на экране?
Наверх  Всего сообщений: 2716
Фильтровать сообщения
Поиск по теме
Файлы топика (511)