![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы
![]() |
Поиск в этой теме
![]() |
![]() |
#1 |
Форумчанин Подтвердите свой е-майл
Регистрация: 25.02.2008
Сообщений: 289
|
![]()
Подскажите пожалуйста как хранить карты для игр. Ну я делаю простенькую игру: карта размером с экран и двирать не надо, рисование по канве формы. Не знаю как обрабатывать карту и хранить при использовании. Например перемещение выглядит так:
if a[i+1,j]=0 then переход из a[i,j] в a[i+1,j] но при таком движении смещение получается слишком малениким и почти незаметно.(для большого массива напр. 1024х768), а если делать массив меньше, смещение получается слишком большим и возникает необходимость делить объекты. Как ставить в соответствие циферки массива(я буду загружать карту в массив) реальным объектам-картинкам и их св-м(проходимость, разрушаемость, вес). Есть другая идея - карта хранит массив объектов. Но тогда проблема двигаться между ними: проверять все на столкновение будет слишком долго.
Упс...
|
![]() |
![]() |
![]() |
#2 |
Капсула от спама
Форумчанин
Регистрация: 04.03.2008
Сообщений: 779
|
![]()
1.Если так, то сохраняй в таком формате:
[тип обьекта]*[координата1]%[координата2]&[уголо поворота] (последнее,если юзаешь DelphiX); Напимер такой код: ящик*100%55&45 яма*125%55&0 ...................... геймер*44%23&0 И так далее. получается так сказать, векторный формат ![]() Есть проблемы, как распознать числа??? 2. Пробуй карту одим рисунком. И проверяй через точки. 3. Массив с возможный смещением. То есть: 124524323*25%34&244 2243535353253454 3252*53%24&34543 В этом случае просто сканишь, если просто циферка, то просто, а если следуюший знак - * то делать смещение по x до знака % и по Y до & и после этого знака продолжаешь сканить.
Если данный ответ не столь конкретен, как Вы желаете его увидеть, возможно необходимо поразмыслить, стоит ли вопрос того, чтобы о нём спрашивать на форуме?
CncFiles.ru - бесплатный файловый хостинг Последний раз редактировалось Dj_smart; 14.05.2008 в 23:33. |
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 25.04.2007
Сообщений: 105
|
![]()
я храню их в файле типа интеджер. можеш посмотреть на моей страничке там есть исходники моих игр.
procedure TForm1.N5Click(Sender: TObject); var f: File of Integer; // файл fName: String[80]; // имя файла x,i,j: integer; begin fName :='D:\Robotu\Delphi\my_game_TXT\map a45.map'; AssignFile(f, fName); Rewrite(f); // открыть для перезаписи // запись в файл for j:=0 to 499 do // строки нумеруются с нуля for i:=0 to 499 do // строки нумеруются с нуля begin write(f, mas[i,j]); end; CloseFile(f); // закрыть файл // MessageDlg('Дані збережено в файл ',mtInformation,[mbOk],0); end; procedure TForm1.N4Click(Sender: TObject); var f: file of Integer; // файл записей rec: integer; // запись, прочитанная из файла i,j: integer; // кол-во записей удовлетворяющих запросу st: string[80]; begin opendialog1.Execute; AssignFile(f,opendialog1.FileName); {$I-} Reset(f); // открыть файл для чтения {$I-} if IOResult <> 0 then begin ShowMessage('Ошибка открытия файла БД.'); Exit; end; // обработка БД DXDraw1.Surface.Fill(clBlack); while not EOF(f) do begin for j:=0 to 499 do // строки нумеруются с нуля for i:=0 to 499 do // строки нумеруются с нуля begin read(f,rec); // прочитать запись mas[i,j]:=rec; //if (mas[i,j]<>0) or (mas[i,j]<>1) then DXImageList1.Items.Find('1').Draw(D XDraw1.Surface,i*8-8,j*12-12,mas[i,j]); end; //memo1.Text:=memo1.Text+inttostr(rec ); end; CloseFile(f); //if n = 0 then dxdraw1.Flip; // ShowMessage('Дані завантажені успішно.'); end;
]
|
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 25.04.2007
Сообщений: 105
|
![]()
ето на ДелфиХ. хотя конструкция универсальная. коменты не везьде правельны.
]
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
создание карты города | Коржик | Общие вопросы Delphi | 8 | 13.08.2009 04:54 |
Карты Google Earth | TaluAs | Свободное общение | 10 | 17.05.2008 14:06 |
карты изображений | )Игнат( | HTML и CSS | 1 | 07.02.2008 19:17 |
Чисто задачи (про карты) | Simply-Art | Общие вопросы Delphi | 2 | 29.01.2007 13:50 |