|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
05.09.2010, 19:01 | #1 |
Форумчанин
Регистрация: 04.07.2007
Сообщений: 549
|
[C#] Создаю игру на XNA Game Studio 3.1. Теория создания карт, редактора и другое
Игра 2D.
Вид сверху, но тут скорее от текстур зависит, откуда вид будет =). Бегать можно во все стороны (Лево, право, низ, верх). Жанр, пока остановлюсь на РПГ, а там как слепится =) На момент создания сообщения пытаюсь написать класс, который будет содержать в себе всю инфу для загрузки уровня на экран. Как карты в стратегиях например Starcraft. Вот дело в том, что пока я не особо представляю как их хранить. В виде чего, чтобы не зависеть от версии игры (Прощай сериализация с помощью BinnaryFormatter). Опять же пока думаю насчёт XML (с которым на вы). Делаю игру на XNA Game Studio 4.0. Делаю карту, ну типа как в стратегиях. Вот хочу сделать так: Создаю класс, состоящий из одного огромного прямоугольника и в нём массив прямоугольников представляющих из себя ячейки для текстур (у каждого свои координаты естественно). Вот когда этот огромный прямоугольник будет сдвигаться в сторону и автоматом двигать за собой все эти ячейки для текстур (например цикл для всех прямоугольников с текстурами в методе ScrollMap(int dx, int dy)). Это нужно для скроллинга уровня, чтобы как бы герой по нему бегал. Размер каждой текстуры думаю будет 25х25, для большей детализации, чтоли (честно сам не знаю зачем именно такой размер, кажется, что вариантов для художеств больше будет, чем например с 50х50). Плюс ко всему раз уж каждый прямоугольник тоже получается размером 25х25, то они будут участвовать в системе столкновений. Как бы размер блокиратора путей. Вот думаю как лучше сделать это вообще и как хранить инфу о текстурах. Пока сделал так: List<Texture2D> listTextures = new List<Texture2D>(); И вот я не знаю как хранить инфу о текстурах, то есть они же заранее не известны. Или сделать заранее известными? Но тогда в будущем просто добавлять их к набору всех текстур? А старые карты будут использовать старые текстуры из того же набора? Мне нужно сделать не убогую игру, где 3 объекта на всю карту, а чтобы там были как минимум: 1) Блокираторы путей, для воздушных юнитов и для наземных (тоже прямоугольники размером 25х25). Кстати прямоугольники потому, что у них есть метод проверяющий не пересеклись ли они, а это удобно, типа нарвался на препятствие, туда идти не получится. 2) Координаты расположения объектов, юнитов, может каких декораций. Ну тут придумается по ходу дела, что там ещё будет. Вообще я на верном пути? Что можете посоветовать. Какой подход лучше выбрать? Последний раз редактировалось Casper-SC; 06.09.2010 в 18:45. Причина: Поправил заголовок |
05.09.2010, 19:10 | #2 |
Форумчанин
Регистрация: 02.07.2009
Сообщений: 722
|
Пиши в аську поговорим на эту тему: 301 040 873
А по теме: не забывай, что проверять столкновения и тд, и отрисовывать текстуры всего мира не стоит(ибо если большой уровень то тяжко...). techdays.ru посмотри XNA для начинающих. (2D ..... Много интересного рассказывается... |
06.09.2010, 18:44 | #3 |
Форумчанин
Регистрация: 04.07.2007
Сообщений: 549
|
Все видео пересмотрел. Поставил себе XNA Game Studio 3.1 и VS 2008 Express. Всё теперь мне доступно много примеров.
Кстати народ нашёл только что сайт с текстурами, думаю будет многим полезен. Я что-то даже не предполагал, что такие существуют http://www.cgtextures.com/ |
06.09.2010, 19:27 | #4 |
c++, dx/ogl
Форумчанин
Регистрация: 10.11.2008
Сообщений: 131
|
Casper-SC, вам надо в этой теме организовать блог с отчетом о процессе разработки и достижениях игро-строительства xD, периодически выкладывая материал по теме) Вдруг кому-то кроме меня еще интересно)).
И как вы все-таки организовали хранение текстур?) Collision Test реализовали?)
“Batch, Batch, Batch:” What Does It Really Mean?
I am a donut! Ask not how many tris/batch, but rather how many batches/frame! |
06.09.2010, 21:08 | #5 |
Старожил
Регистрация: 21.03.2009
Сообщений: 2,193
|
Насчет сайтов с текстурами - была тема про такое:
http://programmersforum.ru/showthread.php?t=44291
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта Тема на форуме, посвященная ему же |
06.09.2010, 21:18 | #6 |
Форумчанин
Регистрация: 01.09.2009
Сообщений: 197
|
Пиши 41911603\ноль\
Есть заготовка игры с видом сверху\сбоку. |
06.09.2010, 22:31 | #7 |
Форумчанин
Регистрация: 04.07.2007
Сообщений: 549
|
Ну хранением вообще всех ресурсов в игре как я понял занимается ContentManager.
Пока я думаю сделать так: Создаю класс клетки из которых будет состоять уровень. В нём будут поля: является ли клетка блокиратором пути для наземных единиц, для воздушных, bool видима ли она на экране. Так как уровень будет прокручиваться, ну как бы скролл, герой бегает, а уровень прокручивается. Так вот рисоваться будут только те клетки, которые считаются видимыми. Как сообщать им, что они видимы, мне предстоит ещё придумать. А проверка на то, пересекаются ли прямоугольники делается так: Код:
Код:
Тут просто указан тестовый класс, для проверки и отображения результата на экран, нужен был только в тестовых целях, а реально нужный код для проверки, этот: Код:
Последний раз редактировалось Casper-SC; 06.09.2010 в 23:12. |
06.09.2010, 22:47 | #8 |
Форумчанин
Регистрация: 01.09.2009
Сообщений: 197
|
>> Так вот рисоваться будут только те клетки, которые считаются видимыми. Как сообщать им, что они видимы, мне предстоит ещё придумать.
Есть куча примеров, как сделать 2D камеру в XNA, не надо ничего придумывать. |
06.09.2010, 23:18 | #9 | |
Форумчанин
Регистрация: 04.07.2007
Сообщений: 549
|
Цитата:
Код:
|
|
06.09.2010, 23:33 | #10 |
Старожил
Регистрация: 21.03.2009
Сообщений: 2,193
|
Не надо двигать никуда кучу объектов! Двигайте только камеру.
У вас есть координаты камеры, есть размеры экрана (точнее, размер зоны в охвате камеры), координаты объектов. Если объект попадает в зону охвата камеры - объект видим, если нет - то нет.
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта Тема на форуме, посвященная ему же |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
XNA Game Studio или VC++? | VintProg | Свободное общение | 6 | 02.09.2010 17:50 |
XNA Game Studio 4.0. Проблемы с запуском. Подробности в теме... | Casper-SC | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 2 | 30.08.2010 09:07 |
Создаю игру | AndreyX | Фриланс | 12 | 06.07.2010 17:13 |
Изменение функций редактора карт Far Cry 2 | Владислав1967 | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 1 | 25.11.2008 17:06 |