![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Требуется написать лаберинт. Типа Doom'a без монстров
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...
Фигня короче... :)