Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Требуется написать лаберинт. Типа Doom'a без монстров


Страницы:   1 2

Sewix ©   (2004-07-09 15:22:00) 

3D игр не писал. Посоветуйте на чем лучше писать. Какой компонент или библиотеку и т.д. лучшье использовать. Можно ли взять какой нибудь проект за основу.


Sewix   (2004-07-13 12:30:00) [1]


> Данил

давай sewix@mail.ru все равно пригодится.
Карта хранится в StringGrid так что битмаповская карта не понадобилась. Проблема былав положении на карте. Все ок осталось сделать грамотное скольжение вдоль стен. Всем спасибо.


Evgeniy_K   (2004-07-13 11:06:00) [2]

Сделай матрицу nxn - это карта. Храни там что хочешь..


КиТаЯц   (2004-07-13 07:02:00) [3]

2 ПсихЪ_просто   (12.07.04 16:57) [17]
:) Да! Именно P osition


Данил   (2004-07-12 21:10:00) [4]

у меня есть, хош дам :)


ПсихЪ_просто   (2004-07-12 16:57:00) [5]


> КиТаЯц ©   (12.07.04 14:31) [16]

Я в GLScene не разбираюсь, но может всё-таки GLCamera.P osition.x? Если нет, то не бейте ногами по лицу... (:


КиТаЯц   (2004-07-12 14:31:00) [6]

var x, y, z: Single;
begin
 x:= GLCamera.Psition.x;
 y:= GLCamera...
 ...
end;


Sewix   (2004-07-12 14:17:00) [7]

Как узнать текущее положение на карте(я так понимаю камеры). Использую GLScene переделываю пример portal.


КиТаЯц   (2004-07-12 09:20:00) [8]


> ПсихЪ_клон   (09.07.04 16:08) [3]
>
> > КиТаЯц ©   (09.07.04 16:00) [2]
>
> Слухай, будь другом, сделай пару скринов этой хрени - того,
> что получится после того, как ты там всё нарисуешь и откомпилишь...
> А то чё-то интересно стало, а ставить из-за этого GLScene
> не хочется. Исключительно ради интереса, так что если очень
> уж влом, то забей, хотя посмотреть на авто-жиэлевский-вольфэнштэйн
> хоЦЦа.

Да там смотреть нечего... Пол и из пола столбы одного размера торчат. Если столбы рядом, то стена получается. Короче ниче серьезного...


NighmareZombie   (2004-07-12 05:20:00) [9]

Зайди на systemhalt.nm.ru там есть чуть-чуть на эту тему


Zer0   (2004-07-11 17:04:00) [10]

готовя прога для дельфии :
все что нужно - сделать управление =) :не так уж и мало:

http://tothpaul.free.fr/usdelphix.php3?page=1


Колбасьев   (2004-07-11 15:35:00) [11]

2 Sewix: Ссылку? Я сам способ придумал. Примеров в сети не знаю
%=)
Сейчас готового примера нет.

Но делается примерно так:
глобальные переменные:

Map: TBitmap;

в OnCreate:

Map := TBitmap.Create;
try
 Map.LoadFromFile('Map1.bmp');
except
 ...
end;

в OnDestroy:

Map.Free;
...

в OnKeyDown:

//При нажатии клавиш упр. курсором находим новые значения
//XPosNew и ZPosNew (новое положение в пространстве)
//Примичание. Сичтается, что, если ось X направлена вперед, то
//Z влево, Y вверх.
...
if Map.Canvas.Pixels[Trunc(XPosNew*Scale), Trunc(ZPosNew*Scale)] = clWhite then
 begin
  XPos := XPosNew;
  ZPos := ZPosNew;  
 end
else
 if Map.Canvas.Pixels[Trunc(XPosNew*Scale), Trunc(ZPos*Scale)] = clWhite then
  begin
   XPos := XPosNew;
  end
 else
 if Map.Canvas.Pixels[Trunc(XPos*Scale), Trunc(ZPosNew*Scale)] = clWhite then
  begin
   ZPos := ZPosNew;
  end;

где Scale - масштабный коэфициент, ZPos и XPos - текущее положение в пространстве. В данном варианте карты мы не обрабатываем высоту - Y координату, поэтому ходим по одной плоскости (как в Wolf'е), но скользим вдоль стан, как в DooM'е, а не утыкаемся в них носом.

Думаю идея понятна.


Думкин   (2004-07-10 15:20:00) [12]

Если не писал, то купи книжку Ла Мота - сейчас какк раз новая вышла, специально для 3Д, всего ~20уе.


Sewix   (2004-07-10 13:02:00) [13]


> Колбасьев ©   (09.07.04 19:18) [8]

Можно ссылочку на пример с картой (bitmap), а лучше со сферо
у меня на карте наверное только стены и будут не каких туманов и прочее.


Колбасьев   (2004-07-09 19:18:00) [14]

Можно завести карту (bitmap), где белые пиксели - места разрешенные для хождения, черные - нет. Просто перед ходом отображаем координаты пространства в координаты карты (например делим на 0.5, если сторона треугольника под ногами 0.5 или другой способ), проверяем цвет пикселя и либо идем, либо нет.

Можно сделать все "по науке" (формулам плоскости и т.д.). Можно обрабатывать пересечения с собой (окружая себя сферой). Есть и другие способы.


Bryke   (2004-07-09 17:04:00) [15]


> Класс работает, а как сделать чтобы через стены нельзя было
> ходить?

Заведи дополнительную поверхность, на ней рисуй всю сцену,
только без освещения, туманов, теней и пр.
Перед движением проверяй, что за цвет у тебя перед носом,


Sewix   (2004-07-09 16:56:00) [16]


> КиТаЯц ©   (09.07.04 16:00) [2]

Класс работает, а как сделать чтобы через стены нельзя было ходить? Естиь ли документация по GLScene на русском?


ПсихЪ_клон   (2004-07-09 16:41:00) [17]


> Sewix   (09.07.04 16:17) [4]

Не, я так не смогу. Прост не запомню. Скинь мне на мыло stalker2010@front.ru письмо с текстом своего первого поста. Я когда домой доберусь с работы, почту проверю и отошлю тебе на обратный адрес то, что ты хочешь.


Sewix   (2004-07-09 16:17:00) [18]


> ПсихЪ_клон

пришлите на мыло sewix@mail.ru документацию или пример или ссылку

> загрузки уровня из файла и проверка столкновений со стенами
>

с GLScene щас попробую.


ПсихЪ_клон   (2004-07-09 16:08:00) [19]


> КиТаЯц ©   (09.07.04 16:00) [2]

Слухай, будь другом, сделай пару скринов этой хрени - того, что получится после того, как ты там всё нарисуешь и откомпилишь... А то чё-то интересно стало, а ставить из-за этого GLScene не хочется. Исключительно ради интереса, так что если очень уж влом, то забей, хотя посмотреть на авто-жиэлевский-вольфэнштэйн хоЦЦа.


КиТаЯц   (2004-07-09 16:00:00) [20]

Можно еще проще. Качаеш GLScene, там есть компонент "портал"... И пример к нему тоже есть. Рисуеш себе портал без монстров - только получается что то не типа DOOM, а типа Wolfenstagen...
Фигня короче... :)


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо