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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.10.2008, 11:32   #1
Манжосов Денис :)
Участник клуба
 
Регистрация: 29.01.2008
Сообщений: 1,039
Восклицание Мой первый редактор для игры:"Лесной мир".

Игра "Лесной мир" будет представлять из себя аркаду с видом от 2 лица. Игра ещё в разработке, а вот первая версия редактора уже сделана.
Возможности редактора:
1. Текстур земли: 3.
2. Препятствия: Вода.
3. Дополнительные декорации: деревья. Количество: 3.
4. Позиция начала игрока и конца уровня.
В-общем тестируйте. Если как-то можно дополнить редактор, то пишите сюда. Все комментарии: положительные, отрицательные, нейтральные - в эту тему.
Вложения
Тип файла: rar Redaktor.rar (176.0 Кб, 78 просмотров)
Манжосов Денис :) вне форума Ответить с цитированием
Старый 19.10.2008, 11:36   #2
BangBangFM
Заблокирован
 
Регистрация: 12.08.2008
Сообщений: 166
По умолчанию

Опыт показывает, что в подобных проектах лучше использовать не редактор, а генератор! Огромные расстояния с минимальными усилиями.
BangBangFM вне форума Ответить с цитированием
Старый 19.10.2008, 13:13   #3
BangBangFM
Заблокирован
 
Регистрация: 12.08.2008
Сообщений: 166
По умолчанию

В файл запись идет не правильно. По нему в одном и том же месте может прорисовываться огромное количество объектов. То есть игрок может увидеть землю а обработка будет видет воду.

Лучше создай тип:

Код:
const widht=3000 {ширина карты};
         heigth=1000 {высота карты};

type Karta=record
        Mainobject: array [0..widht,0..heigth] of object{твой тип объектов}; 
        additionobject: array [0..widht,0..heigth] of addobject{твой тип дополнительных объектов}; 
       end;
// Куда запишем карту.
Var F:File of Karta;
// Где будем менять
      K:Karta;

Последний раз редактировалось BangBangFM; 19.10.2008 в 13:22.
BangBangFM вне форума Ответить с цитированием
Старый 19.10.2008, 13:18   #4
Манжосов Денис :)
Участник клуба
 
Регистрация: 29.01.2008
Сообщений: 1,039
По умолчанию

Цитата:
Сообщение от BangBangFM
В файл запись идет не правильно. По нему в одном и том же месте может прорисовываться огромное количество объектов. То есть игрок может увидеть землю а обработка будет видет воду.
Именно, вставьте неправильную строку из файла, где не правильно.

Последний раз редактировалось Beermonza; 21.10.2008 в 21:05.
Манжосов Денис :) вне форума Ответить с цитированием
Старый 19.10.2008, 13:33   #5
BangBangFM
Заблокирован
 
Регистрация: 12.08.2008
Сообщений: 166
По умолчанию

Везде. Посмотри сколько клеток я изменил? Одну! А строчек? Много!
Error! Должно: 1 строка = 1 клетка на карте!
Изображения
Тип файла: jpg ук.jpg (30.6 Кб, 206 просмотров)
BangBangFM вне форума Ответить с цитированием
Старый 19.10.2008, 13:41   #6
Манжосов Денис :)
Участник клуба
 
Регистрация: 29.01.2008
Сообщений: 1,039
По умолчанию

Просто вы сделали так, 10 текстур в одну точку понатыкали, вот и строчек много. Если я отчасти понял, то вы хотите, чтобы когда ставишь один объект на место другого, то старый удалялся?
Манжосов Денис :) вне форума Ответить с цитированием
Старый 19.10.2008, 13:44   #7
Манжосов Денис :)
Участник клуба
 
Регистрация: 29.01.2008
Сообщений: 1,039
По умолчанию Пример карты, сделанной в редакторе.

Пример карты, которую я сам сделал в редакторе.
Просто загрузите это через редактор.
Вложения
Тип файла: txt LevelFirst.txt (8.4 Кб, 191 просмотров)
Манжосов Денис :) вне форума Ответить с цитированием
Старый 19.10.2008, 13:48   #8
BangBangFM
Заблокирован
 
Регистрация: 12.08.2008
Сообщений: 166
По умолчанию

Конечно можно делать карту соблюдая свои (а не прогрммные) правила, а если нечаенно на место другово поставишь, что тогда? К тому же использовать тип было бы на много проще.

Последний раз редактировалось BangBangFM; 19.10.2008 в 13:51.
BangBangFM вне форума Ответить с цитированием
Старый 21.10.2008, 19:56   #9
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Цитата:
Сообщение от Манжосов Денис :)
Если я отчасти понял, то вы хотите, чтобы когда ставишь один объект на место другого, то старый удалялся?
А как же иначе? Это ведь не редактор для саперов (имеется ввиду профессия а не игра =), в к-ром ошибиться можно только один раз?
Само слово редактор подразумевает редактирование.


Покритиковал, теперь пару советов.

Координаты ячейки лучше и удобнее хранить в "ячейковых" координатах, а не в пиксельных.

Идентификаторы "Ground1" и т.д. лучше заменить на цифры (одного байта хватит на 256 различных состояний ячейки).
Или хотя бы на одну букву G1, W1 и т.д., так как замена на цифру ведет к переходу на бинарный файл, иначе теряется смысл.

Удобнее хранить в виде матрицы, так оно более человекочитаемо, если конечно размер карты позволяет увидеть ее целиком, это что касается удобства. С точки зрения экономии, переносы лучше убрать, каждый перенос строки это лишних два байта, сколько лишних байт в слове "Ground1" посчитай сам )

Можно хранить карту не в текстовом, а в бинарном виде, иногда так лучше. Особенно если карта большая и важен размер.

p.s. Да, в редакторе удобнее, когда зажав кнопку мыши можно тянуть и рисовать сразу много а не по одному тыкать.
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог

Последний раз редактировалось Beermonza; 21.10.2008 в 21:06.
mutabor вне форума Ответить с цитированием
Старый 21.10.2008, 20:40   #10
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию Как это сделать

Создай матрицу с размерами поля в ячейках. У тебя это 28 х 16.
Будем считать что число состояний клетки не более 256, т.е. хватает одного байта.
Код:
var
map: array of array of byte;

SetLength(map,28,16);
После этого у тебя будет матрица заполненная нулями. На каждое состояние клетки назначь код, например:
0 - пусто
1 - земля
2 - вода и т.д.

При клике мышью помещай в соотв. ячейку матрицы значение соостветствующее выбранному "инструменту" на панели. Как будет готово сохраняй матрицу в файл:
Код:
for i:=0 to width do
  for j:=0 to height do {сохранение ячейки [i,j]};
Формат файла на выбор, можно по разному хранить, я выше писал.
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Показать в окне "Мой компьютер" Comer_Jus Общие вопросы Delphi 3 27.09.2008 03:28
Помогите с программой на С++ "текстовый редактор с поддержкой нескольких кодировок" alwa Помощь студентам 1 05.06.2008 19:48
Редактор для "Команч 4" Air Свободное общение 0 31.05.2008 13:54
Добавление компонентов в "мой компьютер" Oleg-vp Общие вопросы Delphi 1 20.11.2007 15:40