Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.06.2012, 12:59   #1
_PROGRAMM_
Участник клуба
 
Аватар для _PROGRAMM_
 
Регистрация: 30.07.2009
Сообщений: 1,603
По умолчанию 2D карта "местности"

Приветствую всех игроделов. Начну с того, что имеется. У меня есть карта(на ней земля, река цветочки и т.д.). Она отображается рисунком на полигоне, т.е. текстурой 2048 на 2048(Хорошо ли это?). И по ней двигается объект, находящийся в середине. По сути объект стоит, а карта движется. Но двигается он по всем и соответственно по воде. Где-то читал, что для ограничения произвольного движения создаются карты "местности"(точного названия не знаю). Она не отображается, но регулирует движение, например, запрещать движение по воде. Я думал сделать парсер картинки на assembler. Проблема не в этом, а в том, какую нужно делать выходную информацию? Где эта карта должна храниться? Неужели в виде массива?
Заранее спасибо.

В мире нет вечных двигателей, зато есть вечные тормоза...

Блог
_PROGRAMM_ вне форума Ответить с цитированием
Старый 28.06.2012, 15:51   #2
Beermonza
Инженер ИС
Старожил
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
По умолчанию

Цитата:
Сообщение от _PROGRAMM_ Посмотреть сообщение
Приветствую всех игроделов. Начну с того, что имеется. У меня есть карта(на ней земля, река цветочки и т.д.). Она отображается рисунком на полигоне, т.е. текстурой 2048 на 2048(Хорошо ли это?). И по ней двигается объект, находящийся в середине. По сути объект стоит, а карта движется. Но двигается он по всем и соответственно по воде. Где-то читал, что для ограничения произвольного движения создаются карты "местности"(точного названия не знаю). Она не отображается, но регулирует движение, например, запрещать движение по воде. Я думал сделать парсер картинки на assembler. Проблема не в этом, а в том, какую нужно делать выходную информацию? Где эта карта должна храниться? Неужели в виде массива?
Заранее спасибо.
Ну, естественно, основа любой игры - математическая модель. Карта на экране только лишь графическое отображение участка игрового пространства, которое может быть огромным. Текстура 2048х2048 пкс, отвечающая целиком за некий кусочек пространства - это неправильный подход. А что если что-то изменится на этом кусочке? ...крафтер копнёт ямку, магическое заклинание обожжет почву, дождь намочит, сменится время года и т.д. и т.п. Очевидно, что в этом случае, да и во всех остальных, следует определиться с размером элементарной клеткой игрового пространства, ...т.е. участок карты должен собираться из элементарных тайлов (универсальных текстур малого размера), которые хранятся в банке текстур и выдёргиваются при сборе очередного участка по его математической модели. Да, это двумерный массив записей. В каждой ячейке есть индекс на текстуру, параметры проходимости, вспомогательные данные.

Посмотри вот это, а потом начнешь обдумывать, что делать дальше и как:

Модель аркадного уровня
Пример от Kostia
Анимация
Про модель юнитов 1
Про модель юнитов 2
Про модель юнитов 3
Простой пример основы РПГ
Про загрузку и использование текстур и проходимости...
Подробно о заполнении банка текстур...
Пример аркады с прыжком
Создание меню/интерфейса
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Beermonza вне форума Ответить с цитированием
Старый 28.06.2012, 19:14   #3
_PROGRAMM_
Участник клуба
 
Аватар для _PROGRAMM_
 
Регистрация: 30.07.2009
Сообщений: 1,603
По умолчанию

Цитата:
А что если что-то изменится на этом кусочке?
Да вот дело в том, что на поле ничего меняться не будет, но ваш вариант мне с самого начала нравился да еще и карты будут меньше весить. Меня вот что больше всего смущает.(начало игрушки во вложении). Юнит может поворачиваться на 360 градусов и двигаться под любым углом. Поднимается вопрос: как рассчитывать что находится впереди? Массив от 0 до бесконечности, а игровые измерения дробные(OpenGL). Как узнать, что перед тобой вода или стена? Предположим следующее. Есть массив карты, например, 1024 на 1024 байтов. В каждом хранится число, характеризующее клетку(вода, стена, куст), имеющую размеры 0.1 (в координатах OpenGL. Хотя это грубо, у меня юнит такого размера). Пусть 0 в массиве означает землю. Следовательно определенный кубик размерами 0.1x0.1 будет с текстурой земли. Другой содержит 1 и означает воду. Юнит движется, например, под углом в 75, образованным с осью оу. Как высчитать нет ли на его пути воды? Ожидая ответа, буду гулить "Как определить пересекает ли прямая квадрат".
Цитата:
Посмотри вот это, а потом начнешь обдумывать, что делать дальше и как:
Приму на вооружение
Вложения
Тип файла: zip Заготовка.zip (580.2 Кб, 24 просмотров)

В мире нет вечных двигателей, зато есть вечные тормоза...

Блог

Последний раз редактировалось _PROGRAMM_; 28.06.2012 в 19:33. Причина: Забыл прикрепить
_PROGRAMM_ вне форума Ответить с цитированием
Старый 28.06.2012, 22:43   #4
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Цитата:
Сообщение от _PROGRAMM_ Посмотреть сообщение
...буду гулить "Как определить пересекает ли прямая квадрат".
Нет, может, и правда, нужно давать сначала аналитическую геометрию и только потом программирование...
s-andriano вне форума Ответить с цитированием
Старый 29.06.2012, 11:22   #5
_PROGRAMM_
Участник клуба
 
Аватар для _PROGRAMM_
 
Регистрация: 30.07.2009
Сообщений: 1,603
По умолчанию

Цитата:
Нет, может, и правда, нужно давать сначала аналитическую геометрию и только потом программирование...
Книги для самостоятельного обучения есть? У меня уровень 9 класса. Сейчас на каникулах 10 класс по профильным учебникам изучаю. Я в этом направлении так работаю: что-то нужно, иду в гугл, если непонятно то, что нагуглил, возвращаюсь к первому пункту. Работает .
На самом деле я почти сразу, после написания поста нашел информацию о прямой и квадрате, но, возможно, есть варианты оптимальнее. Для этого я и написал цитированную вами фразу
--
Только сейчас заметил в вашей фразе слово "давать". Смысл немного меняется. Я думал Вы предлагаете мне изучать аналитическую геометрию. Ну да ладно...

В мире нет вечных двигателей, зато есть вечные тормоза...

Блог

Последний раз редактировалось _PROGRAMM_; 29.06.2012 в 14:43.
_PROGRAMM_ вне форума Ответить с цитированием
Старый 29.06.2012, 18:43   #6
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Цитата:
Сообщение от _PROGRAMM_ Посмотреть сообщение
Только сейчас заметил в вашей фразе слово "давать". Смысл немного меняется. Я думал Вы предлагаете мне изучать аналитическую геометрию. Ну да ладно...
Да, я имел в виду порядок изучения различных предметов в учебных заведениях.
Но, думаю, аналитическую геометрию Вам поучить все равно придется - без этого в компьютерной графике (и, в частности, в играх) делать нечего.
Просто следует сразу настроиться на то, что для написания любой серьезной программы познания в предметной области существенно важнее умения программировать.
s-andriano вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Доступ к информации через точки на Image (карта с "горячими" точками) dydochnik Общие вопросы Delphi 22 18.05.2012 10:34
Вывести название соответствующей карты вида "шестерка бубен", "дама червей","туз треф" и т.п. воваава Помощь студентам 3 01.12.2011 12:50
Записи - "бьет" ли карта k1 карту k2, с учетом того что масть m является козырной. makarevich Общие вопросы Delphi 2 21.06.2011 13:38
"бьет" ли карта С1 карту С2 Djoker Паскаль, Turbo Pascal, PascalABC.NET 1 13.12.2010 19:54
при вводе на листе "магазин"- код товара появлялось "описание" товара из "склада" с "продажной ценой" aleksei78 Microsoft Office Excel 13 25.08.2009 12:04