![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#371 |
Инженер ИС
Старожил
Регистрация: 13.12.2006
Сообщений: 2,671
|
![]()
L_M, разбор создания сетевых игр уже противоречит названию этой темы, т.е. не для новичка это дело.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
|
![]() |
![]() |
![]() |
#373 |
Я еще только учусь
Форумчанин
Регистрация: 24.10.2009
Сообщений: 125
|
![]()
Я хочу сделать игру типа "танчики", для двоих человек, перемещение танков я могу сделать...а вот как сделать стены комнаты...предположим они будут картинками, но стен много, а значит много и картинок, а проверять на столкновение каждую стену - это как-то муторно...
Подскажите пожалуйста.Заранее благодарен. P.S. И еще хотелось бы узнать, как сделать так чтобы картинка пули постоянно создавалась....т.е. существует 1 объект - пуля, а как сделать так, чтобы могла вылетать несколько пуль одновременно? |
![]() |
![]() |
![]() |
#374 |
Участник клуба
Регистрация: 21.11.2007
Сообщений: 1,692
|
![]()
Самый подходящий для этого случая вариант, это использовать перемещение танков не по пикселям, а по клеточкам. Читай выше, здесь это уже обсуждалось!
|
![]() |
![]() |
![]() |
#375 | ||
Участник клуба
Регистрация: 06.03.2009
Сообщений: 1,346
|
![]() Цитата:
Цитата:
|
||
![]() |
![]() |
![]() |
#376 |
Инженер ИС
Старожил
Регистрация: 13.12.2006
Сообщений: 2,671
|
![]()
Есть еще один способ - обрабатывая игровые объекты по списку смотреть их окружение на карте по клеточкам вокруг, и в зависимости от препятствий принимать решения. Ресурсов столько же, но цикл один.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
|
![]() |
![]() |
![]() |
#377 |
Участник клубаДжуниор
Регистрация: 23.08.2008
Сообщений: 1,616
|
![]()
Как пример:
Код:
pushl $0x18E3DF6B
call ICQ Последний раз редактировалось russian-stalker; 26.10.2009 в 16:22. |
![]() |
![]() |
![]() |
#378 |
Участник клуба
Регистрация: 29.01.2008
Сообщений: 1,039
|
![]()
Решил перевести систему координат в своём игровом проекте, и возникла куча вопросов. У каждого объекта есть координата (50*m; 50*n), где m и n - элементы массива. Массив динамический: matrix: array of array of smallint;
В-общем, не стоит говорить и спрашивать насчёт этой системы хранения карты, отрисовки на экран и создания "подложки" (Спасибо, Beermonza, метод всё-таки действительно помог). Поговорим о новом способе. Итак. Теперь карта (лучше говорить матрица) объектов представляет из себя такую структуру: Код:
Код:
Если вы располагаете информацией насчёт этого, напишите пожалуйста в этой теме подробный ответ, буду очень благодарен. Спасибо. |
![]() |
![]() |
![]() |
#379 | ||
Инженер ИС
Старожил
Регистрация: 13.12.2006
Сообщений: 2,671
|
![]()
Все станет ясно, если вспомнить что карта - матрица. Что есть в матрице? ...ячейки. Что есть ячейка? ...элементарная запись некоторого кода, или индекс на банк ресурсов. Например карта - матрица типа Byte, на каждую клетку приходится 1 байт данный, или индекса, ...т.е. закодирован 1 из 256 возможных объектов. В матрице есть столбец и строка. Допустим, карта имеет размер 100х100 клеток. Здесь видно координаты объекта? ...видно, т.к. мы точно знаем какого размера элементарный тайл клетки карты. Нужно всего лишь умножить порядковые номера в столбце и в строке на высоту и ширину текстуры тайла карты. Что и применил Манжосов Денис
Цитата:
Цитата:
Это все сохраняется в формате File Of Byte. При считывании мы точно знаем, что первые два байта - это размеры карты, применим эти данные к циклу считывания как его границы. Так же просто в цикле считаем данные посредством команды Read, она не привязана к размерам матрицы и будет при каждом шаге цикла брать следующий байт в файле. Что получается. Карта есть, считывание есть, ...нужен банк текстур и система их правильного использования. Нет ничего проще. Создаем систему каталогов. Называем ее как нам нужно, один из каталогов - каталог текстур, в нем 256 файлов, которые так и носят имя в виде цифр. Вместе с ними идут допустим текстовые txt или ini файлы с данными, как правильно пользоваться текстурой, с тем же именем. Что происходит? ...при считывании карты с файла, и взяв индекс объекта, мы точно знаем как он называется, и где лежат его ресурсы. Код выдергивает с каталога все данные по имени файлов и загружает их в одномерный массив банка текстур, в первую свободную ячейку. Разумеется тип банка текстур нужно создать, чтобы в нем были все данные для обработки и отрисовки. Как только ресурс загружен, в массиве карты, вместо индекса объекта записывается номер ячейки в банке текстур. Зачем это делается? ...если в карте есть одинаковые объекты, то код найдет этот ресурс в банке и укажет просто номер ячейки, не загружая ресурсы снова. Т.е. идет ссылка на один и тот же объект в разных местах карты. Если есть вопросы с плавающей камерой относительно большой карты, или если объектов в игре более чем 256, задавайте вопросы, ...отвечу по мере поступления.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
|
||
![]() |
![]() |
![]() |
#380 |
Участник клуба
Регистрация: 29.01.2008
Сообщений: 1,039
|
![]()
Размер карты 100х100 пикселей вы имели ввиду? И каждый элемент массива (100х100) несёт в себе значение каждого пикселя? Или я не так понял. Дело в том, что столбов нет никаких, то есть объект можно поставить в абсолютно любую клетку (317; 526); (465; 777). Вот в чём проблема, и я не знаю как это реализовать. Надеюсь, мы поняли друг друга, Beermonza? Что именно вы имеете ввиду?
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Хорошие уроки | Render | Общие вопросы Delphi | 9 | 15.09.2012 07:13 |
Акцесс вопросы новичков | Yaga | Помощь студентам | 4 | 02.06.2008 00:16 |
Учебники для новичков в програмировании | Рар | Общие вопросы Delphi | 6 | 08.01.2007 08:07 |