RFO BASIC << 1 ... 5 6 7 8 9 ... 272 >> 10.02.2015 / 17:15 | | oslopov1991 Пользователь Сейчас: Offline
Имя: олег Регистрация: 24.12.2014
| Magatino, на твой пост ( #400335) отвечу, Этот код не окончательный, а только базовый. И его можно по разному изменить. Зато он может строить карты из отдельных картинок как в старых игровых приставках и к томуже даёт скроллинг карты и нормальную скорость. Его просто нужно дополнять новыми картинками, координатами и поменять скорость прокрутки. И не надо мне говорить о теории постронения игр. Я от и до изучил работу процессора nes и процессор sega работает почти также, только в нем планов больше и скроллинг можно делать частями. К томуже он рассчитан именно на спрайтовый режим как наиболее постой для освоения и понимания. Код ещё в разработке и он будет подогнан под любые разрешени и маленький размер, насколько это возможно. Изменено oslopov1991 (10.02 / 17:19) (всего 1 раз) |
10.02.2015 / 17:19 | | Magatino Администратор Сейчас: Offline
Имя: Alexandr Откуда: Где Ленин родился. Simbirsk City Регистрация: 28.01.2011
| oslopov1991, Дык, тут дело в оптимизации, вот как это на Java: for (int j=0;j<Map_height;j++)
for (int i=0;i<Map_width;i++)
{
tile=map[j*Map_width+i];
//В моём случае нулевой тайл обозначается как пустая клетка, следовательно его не надо рисовать
if (tile!=0)
g.drawImage(tile_image[tile], i*tile_width+x, j*tile_height+y, 20);
}
Осталось добавить отсечение тайлов |
10.02.2015 / 17:24 | | oslopov1991 Пользователь Сейчас: Offline
Имя: олег Регистрация: 24.12.2014
| ВитаминКО, на твой пост ( #400327) отвечу, А ты его тестил на дроиде? Лучше выставки скролл на 4-8 пикселов в условиях смещения по определенному направлению. If wnew>wold then x=x+1 например направление по горизонтали вправо на один пиксел за цикл. |
10.02.2015 / 17:36 | | oslopov1991 Пользователь Сейчас: Offline
Имя: олег Регистрация: 24.12.2014
| Magatino, на твой пост ( #400375) отвечу, Так нулевому тайгу, то есть самому верхнему левому я могу дать просто координаты x,y те что вычислены из условиях определяющих направление скроллинга. И код будет все равно работать. А суть здесь в том что каждый тайл это текущее смещение плюс положение тайла в сетке. Положение в сетке это размер тайла в пикселахпомноженный на его порядковое место в сетке. Такое дело для обоих координат и на каждый тайл персонально. Ну конечно можно заменить список начальных позиций на генератор координат, но мне пока проще подрисовывать по кусочкам тайлы, чтоб они смотрелись хорошо с остальными. Можно контролировать процесс подгонки тайлов друг к другу. Поэтому оптимизировать буду только после того как нарисую всю графику и она будет такой км и задуманно. Для рисования персонажей будет совсем другой код. |
10.02.2015 / 17:51 | | Magatino Администратор Сейчас: Offline
Имя: Alexandr Откуда: Где Ленин родился. Simbirsk City Регистрация: 28.01.2011
| Цитата oslopov1991: Magatino, на твой пост (#400375) отвечу, Так нулевому тайгу, то есть самому верхнему левому я могу дать просто координаты x,y те чтоНулевой тайл, это не первая ячейка это пустой тайл, короче тот код ты ещё не скоро поймёшь, что он делает, займись оптимизацией ВитаминКО, Тормоза будут, ибо он не предусмотрел отсечение не видимых тайлов ( которые за экраном) Изменено Magatino (10.02 / 17:55) (всего 1 раз) |
10.02.2015 / 17:52 | | oslopov1991 Пользователь Сейчас: Offline
Имя: олег Регистрация: 24.12.2014
| Magatino, на твой пост ( #400375) отвечу, Отсекать тайлы можно. Например и рисовать за экраном не всю картинку, а только строку или столбец тайлов, потом сдвигать пока скрытые тайлы не появятся, затем отсекать те тайлы сто уехали за экран и далее по кругу. Так например платформера на денди делались. Там ещё нельзя было назад вернуться. Они одним килобайтом под карты обходились на ранних порах. Андроид позволяет строить огромные карты, а показыватьи ишь часть так почему же этоине использовать. Зачем отсекать тайлы. Это только для написания эмуляторов можно пользовать. Для корректности вывода. |
10.02.2015 / 17:57 | | oslopov1991 Пользователь Сейчас: Offline
Имя: олег Регистрация: 24.12.2014
| Magatino, на твой пост ( #400384) отвечу, Я пробовал заполнить одинаковыми тайлами сетку 1024х1024. Ничего не тормозило никак. Хотя экран был только 1024х552 пиксела, а каждый тайл 64х64 пиксела. Проблем со скролом не увидел, выставлял разную скорость все норм летает. Где вы тормоза увидели? |
10.02.2015 / 18:03 | | oslopov1991 Пользователь Сейчас: Offline
Имя: олег Регистрация: 24.12.2014
| ВитаминКо, посмотри мой код из начала темы, тот что четыре большие картинки с разрешением 1024х1024 каждая, там нет тормозов хотя общее разрешение полученной картинки больше разрешения экрана. На планшете explay у меняивсе норм летает. Вот просто попробуй поэкспериментировать со скорость, размерами, числом картинок можно для этогоидела склеить несколько скриншотов с рабочего стола. Код будет скролить. Так что о тайлах за экраном можно не беспокоиться. Полтора гигагерца проца хватает на такие размеры.
|
10.02.2015 / 18:06 | | oslopov1991 Пользователь Сейчас: Offline
Имя: олег Регистрация: 24.12.2014
| Цитата 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 Пользователь Сейчас: Offline
Имя: олег Регистрация: 24.12.2014
| Magatino, на твой пост ( #400375) отвечу, Я понял код. Циклы вычисляют позицию тайла, если он за пределами экрана, то тайл не выводится. Это типа гашения тайлов в видеопроцах. Погасить строку или столбец тайлов. Ау как быть со случаем, когда одна часть тайла за экраном, а другая на экране? |
<< 1 ... 5 6 7 8 9 ... 272 >> Всего сообщений: 2716 Фильтровать сообщения Поиск по теме Файлы топика (511)
|