Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование в широком смысле слова > Алгоритмика

Алгоритмика Об алгоритмах вообще; методы, обсуждения способов решения

Ответ
 
Опции темы
Старый 23.04.2011, 15:46   #1
IGR
Blitz's Shame !!
 
Регистрация: 31.03.2007
Сообщений: 3,639
Написано 832 полезных сообщений
(для 2,013 пользователей)
Создание 2Д игр с условно бесконечным пространством

Под условно бесконечным подразумевается то что игровая карта будет большой, настолько большой что игрок в ходе игры не сможет осознать ее размеры !! Реалтаймовой или еще какой либо генерации пространства не будет !!
Вообще размеры карты это уже косвенный вопрос, а интересует в первую очередь слудующие:

1) Объекты на карте:
Я так думаю нужно вводить какуето игровую единицу растояния и в файлах даных записывать позиции объектов в етих единицах: объект1, 100, 20; объект2,5000,450; и т. д.

2) Отображение карты на экране и навигация игрока:
Ну а тут я вообще хз !! Вот допустим игрок види часть карты на экране по Х 100 - 200 игровых единиц, по У 250 - 300 игровых единиц !! Если у нас есть какие то игровые объекты то отображаем их !! При перемещении игрока все время пересчитываем !! Но как быть с ландшафтом ??
Вторая мысль типа создание какойто композитной картинки куда отрендерить кусок карты с ландшафтом объектами и прочим и двигать эту картинку по экране при перемещении !!
Вообщем хотелось бы услышать толковые решения знающих !! Спасибо !!
(Offline)
 
Ответить с цитированием
Старый 27.04.2011, 01:17   #2
IGR
Blitz's Shame !!
 
Регистрация: 31.03.2007
Сообщений: 3,639
Написано 832 полезных сообщений
(для 2,013 пользователей)
Ответ: Создание 2Д игр с условно бесконечным пространством

чо-чо ?? Никто не делал двухмерные игры ?? Или непонятны вопросы ??
Эх.. Ох.. Ах.. ((
(Offline)
 
Ответить с цитированием
Старый 27.04.2011, 01:27   #3
SBJoker
Злобный Админ
 
Аватар для SBJoker
 
Регистрация: 04.09.2005
Сообщений: 5,926
Написано 3,415 полезных сообщений
(для 9,330 пользователей)
Ответ: Создание 2Д игр с условно бесконечным пространством

в 2д обычно расстояния меряют клетками из которых это 2д и состоит.
В СтарКрафт-1 например самая большая карта это 256*256, и это реально огромная карта.
__________________
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо SBJoker за это полезное сообщение:
IGR (27.04.2011), Randomize (27.04.2011)
Старый 27.04.2011, 01:39   #4
IGR
Blitz's Shame !!
 
Регистрация: 31.03.2007
Сообщений: 3,639
Написано 832 полезных сообщений
(для 2,013 пользователей)
Ответ: Создание 2Д игр с условно бесконечным пространством

не ну я представляю что нужно какой то порог дискретности, но как определять что выводить на экран юзеру ?? Не всю же эту карту огромную карту держать в видеопамяти ??
(Offline)
 
Ответить с цитированием
Старый 27.04.2011, 02:37   #5
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Создание 2Д игр с условно бесконечным пространством

1. У тебя есть объекты (тайлы, юниты и остальное), есть координаты экрана, строишь квадтри уровня, делаешь запрос объектов, рисуешь необходимые.

2. Если поле - двухмерный массив, то исходя из координат экрана рассчитываешь область подмассива которую надо рисовать - рисуешь...

3. Еще что-то подобное... что давно не рисовалось можно выгружать. Либо что далеко от координат экрана.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
IGR (27.04.2011)
Старый 27.04.2011, 11:48   #6
Reizel
Задрот
 
Аватар для Reizel
 
Регистрация: 24.07.2009
Адрес: Ивановская область, г. Кинешма
Сообщений: 1,574
Написано 407 полезных сообщений
(для 863 пользователей)
Ответ: Создание 2Д игр с условно бесконечным пространством

объекты имеют X,Y, RenderSize.
Так же нужно иметь OFFX,OFFY - смещения, как бы 2Д координаты камеры.
В цикле проверяешь (для каждого объекта), входит ли его XY координаты в прямоугольник экрана + RenderSize объекта. Усе!
А если тебе не понятна единица измерения - делай, к примеру, по 10 пикселей на единицу. и выводи - x*10,y*10 . Хотя я так бы не стал.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
IGR (27.04.2011)
Старый 27.04.2011, 12:21   #7
baton4ik
Дэвелопер
 
Аватар для baton4ik
 
Регистрация: 21.11.2009
Адрес: Киев
Сообщений: 1,699
Написано 657 полезных сообщений
(для 1,962 пользователей)
Ответ: Создание 2Д игр с условно бесконечным пространством

Всё правильно насоветовали!
Для Colominer'a делал тайловый движок - есть список зон, в каждой зоне 75*75 тайлов. У каждой зоны есть свои локальные координаты и у каждого тайла есть локальные координаты внутри зоны. Функции, которые конвертируют экранные координаты в локальные зоны (с учётом смещения камеры) и локальные тайла, возвращают сам тайл. И функции обратной конвертации для отрисовки тайла.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
IGR (27.04.2011)
Старый 27.04.2011, 13:50   #8
IGR
Blitz's Shame !!
 
Регистрация: 31.03.2007
Сообщений: 3,639
Написано 832 полезных сообщений
(для 2,013 пользователей)
Ответ: Создание 2Д игр с условно бесконечным пространством

всем спасибо !!
2Д игры это просто !!
(Offline)
 
Ответить с цитированием
Старый 27.04.2011, 20:16   #9
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: Создание 2Д игр с условно бесконечным пространством

имхо
Реалтаймовой или еще какой либо генерации пространства не будет !!
не состыкуется с
Создание 2Д игр с условно бесконечным пространством
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Dream (01.05.2011)
Старый 30.04.2011, 13:49   #10
IGR
Blitz's Shame !!
 
Регистрация: 31.03.2007
Сообщений: 3,639
Написано 832 полезных сообщений
(для 2,013 пользователей)
Ответ: Создание 2Д игр с условно бесконечным пространством

не ну чо имеется в виду что мир будет очень большой, для юзера будет казатся бесконечным, но тем не мение ввесь мир будет сразу описан в файлах даных и не будет генерироватся в ходе игры еще что то !!
(Offline)
 
Ответить с цитированием
Старый 01.05.2011, 03:10   #11
Phantom
Элита
 
Аватар для Phantom
 
Регистрация: 14.06.2008
Адрес: Украина, Киев
Сообщений: 2,273
Написано 754 полезных сообщений
(для 1,833 пользователей)
Ответ: Создание 2Д игр с условно бесконечным пространством

У меня вопрос не по теме, но тоже про создание пространства. Взгляните на пример во вложении. Структуру лабиринта из примера слева можно просто хранить в памяти, разбив на сектора, каждый сектор может иметь одно из двух значений: "стенка" или "пустота". Карту такого лабиринта можно хранить построчно в файле из 10 строк, по десять символов в каждой:
/*********
0000000000
0111011110
0001010010
0111010110
0100010100
0111110110
0010000000
0111011100
0101110110
0000000000
*********/ 
А как мне хранить карту лабиринта из второго примера?
Миниатюры
Нажмите на изображение для увеличения
Название: лабиринты.png
Просмотров: 869
Размер:	667 байт
ID:	13602  
(Offline)
 
Ответить с цитированием
Старый 01.05.2011, 03:45   #12
IGR
Blitz's Shame !!
 
Регистрация: 31.03.2007
Сообщений: 3,639
Написано 832 полезных сообщений
(для 2,013 пользователей)
Ответ: Создание 2Д игр с условно бесконечным пространством

ну можно по аналогии - есть стенка/нету, но тут тебе нужно уже описывать не ячейку а ее 4 стенки !! Но поскольку одна стенка принадлежит сразу двум ячейкам то зачем описывать эту стенку два раза в двух ячейках !! Можно просто описать стенки по горизонтали и по вертикали !! В этом случаее будет 9 значений в ряд, или 11 если учитывать еще ограничивающие стенки !!
Первая строка по горизонтали будет - 10010010011, а по вертикали - 11010110101 !!
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Phantom (01.05.2011)
Старый 01.05.2011, 04:03   #13
Phantom
Элита
 
Аватар для Phantom
 
Регистрация: 14.06.2008
Адрес: Украина, Киев
Сообщений: 2,273
Написано 754 полезных сообщений
(для 1,833 пользователей)
Ответ: Создание 2Д игр с условно бесконечным пространством

А если усложнить задачу и учитывать, что у стенки с разных сторон должна быть разная текстура или просто я введу какое-то свойство стенки, которое может отличаться у неё с обоих сторон?
(Offline)
 
Ответить с цитированием
Старый 01.05.2011, 04:14   #14
Dream
быдло
 
Регистрация: 05.08.2007
Сообщений: 1,435
Написано 614 полезных сообщений
(для 1,489 пользователей)
Ответ: Создание 2Д игр с условно бесконечным пространством

а кто ограничивает каким числом описывать ячейку? можно же отвести 1,2,4,8,16 для типа пола, 32, 64, 128 - для типа стенок.
Это если важно чтобы поле было описано имеено так как ты написал. и кстати, если всётаки только один символ на ячейку, то можно использывать же char*он там до 256 кажется же,
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Phantom (01.05.2011)
Старый 01.05.2011, 05:08   #15
Phantom
Элита
 
Аватар для Phantom
 
Регистрация: 14.06.2008
Адрес: Украина, Киев
Сообщений: 2,273
Написано 754 полезных сообщений
(для 1,833 пользователей)
Ответ: Создание 2Д игр с условно бесконечным пространством

Метод хранения роли не играет. Мне интересно, как правильнее разбивать лабиринт на сектора. По пустым пространствам может перемещаться персонаж, там могут находиться какие-либо предметы или ещё что-то. Пустые пространства в любом случае надо как-то хранить в памяти, всё равно разбивая на сектора, как и на рисунке. Но и информацию о стенках как-то надо хранить. А они, в отличие от первого рисунка, не лежат в зоне секторов, а лежат между секторами, как по вертикали, так и по горизонтали. Вот я и не знаю, как лучше хранить это всё вместе. Если хранить по методу, который описал IGR, то отдельно придётся информацию о секторах хранить. А при перемещении персонажа по лабиринту придётся учитывать информацию из двух разных источников. Как-то бы разбить по уму всё на сектора, чтобы получилась единая структура, по которой было бы несложно перемещаться в циклах, как по двумерному массиву.
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 00:26.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com