Форум: "Игры";
Текущий архив: 2004.11.07;
Скачать: [xml.tar.bz2];
ВнизТребуется написать лаберинт. Типа Doom a без монстров Найти похожие ветки
← →
Sewix (2004-07-09 15:22) [0]3D игр не писал. Посоветуйте на чем лучше писать. Какой компонент или библиотеку и т.д. лучшье использовать. Можно ли взять какой нибудь проект за основу.
← →
ПсихЪ_клон (2004-07-09 15:37) [1]
> Sewix (09.07.04 15:22)
Можно взять за основу Quake2Delphi, ищи его на сорсфорже. Хотя несложный вариант загрузки уровня из файла и проверка столкновений со стенами валяется где-то в сети (OpenGL API), найти очень легко. Если нужно - замыль, я тебе скину. Только напиши, что конкретно нужно в письме, а то я много кому так говорю, а когда приходит письмо пустое, уже и не помню, что этому человеку было нужно и на каком форуме мы с ним пересеклись. В итоге пока разберёшься - пройдёт несколько дней...
← →
КиТаЯц © (2004-07-09 16:00) [2]Можно еще проще. Качаеш GLScene, там есть компонент "портал"... И пример к нему тоже есть. Рисуеш себе портал без монстров - только получается что то не типа DOOM, а типа Wolfenstagen...
Фигня короче... :)
← →
ПсихЪ_клон (2004-07-09 16:08) [3]
> КиТаЯц © (09.07.04 16:00) [2]
Слухай, будь другом, сделай пару скринов этой хрени - того, что получится после того, как ты там всё нарисуешь и откомпилишь... А то чё-то интересно стало, а ставить из-за этого GLScene не хочется. Исключительно ради интереса, так что если очень уж влом, то забей, хотя посмотреть на авто-жиэлевский-вольфэнштэйн хоЦЦа.
← →
Sewix (2004-07-09 16:17) [4]
> ПсихЪ_клон
пришлите на мыло sewix@mail.ru документацию или пример или ссылку
> загрузки уровня из файла и проверка столкновений со стенами
>
с GLScene щас попробую.
← →
ПсихЪ_клон (2004-07-09 16:41) [5]
> Sewix (09.07.04 16:17) [4]
Не, я так не смогу. Прост не запомню. Скинь мне на мыло stalker2010@front.ru письмо с текстом своего первого поста. Я когда домой доберусь с работы, почту проверю и отошлю тебе на обратный адрес то, что ты хочешь.
← →
Sewix (2004-07-09 16:56) [6]
> КиТаЯц © (09.07.04 16:00) [2]
Класс работает, а как сделать чтобы через стены нельзя было ходить? Естиь ли документация по GLScene на русском?
← →
Bryke (2004-07-09 17:04) [7]
> Класс работает, а как сделать чтобы через стены нельзя было
> ходить?
Заведи дополнительную поверхность, на ней рисуй всю сцену,
только без освещения, туманов, теней и пр.
Перед движением проверяй, что за цвет у тебя перед носом,
← →
Колбасьев © (2004-07-09 19:18) [8]Можно завести карту (bitmap), где белые пиксели - места разрешенные для хождения, черные - нет. Просто перед ходом отображаем координаты пространства в координаты карты (например делим на 0.5, если сторона треугольника под ногами 0.5 или другой способ), проверяем цвет пикселя и либо идем, либо нет.
Можно сделать все "по науке" (формулам плоскости и т.д.). Можно обрабатывать пересечения с собой (окружая себя сферой). Есть и другие способы.
← →
Sewix (2004-07-10 13:02) [9]
> Колбасьев © (09.07.04 19:18) [8]
Можно ссылочку на пример с картой (bitmap), а лучше со сферо
у меня на карте наверное только стены и будут не каких туманов и прочее.
← →
Думкин © (2004-07-10 15:20) [10]Если не писал, то купи книжку Ла Мота - сейчас какк раз новая вышла, специально для 3Д, всего ~20уе.
← →
Колбасьев © (2004-07-11 15:35) [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"е, а не утыкаемся в них носом.
Думаю идея понятна.
← →
Zer0 (2004-07-11 17:04) [12]готовя прога для дельфии :
все что нужно - сделать управление =) :не так уж и мало:
http://tothpaul.free.fr/usdelphix.php3?page=1
← →
NighmareZombie (2004-07-12 05:20) [13]Зайди на systemhalt.nm.ru там есть чуть-чуть на эту тему
← →
КиТаЯц © (2004-07-12 09:20) [14]
> ПсихЪ_клон (09.07.04 16:08) [3]
>
> > КиТаЯц © (09.07.04 16:00) [2]
>
> Слухай, будь другом, сделай пару скринов этой хрени - того,
> что получится после того, как ты там всё нарисуешь и откомпилишь...
> А то чё-то интересно стало, а ставить из-за этого GLScene
> не хочется. Исключительно ради интереса, так что если очень
> уж влом, то забей, хотя посмотреть на авто-жиэлевский-вольфэнштэйн
> хоЦЦа.
Да там смотреть нечего... Пол и из пола столбы одного размера торчат. Если столбы рядом, то стена получается. Короче ниче серьезного...
← →
Sewix (2004-07-12 14:17) [15]Как узнать текущее положение на карте(я так понимаю камеры). Использую GLScene переделываю пример portal.
← →
КиТаЯц © (2004-07-12 14:31) [16]
var x, y, z: Single;
begin
x:= GLCamera.Psition.x;
y:= GLCamera...
...
end;
← →
ПсихЪ_просто (2004-07-12 16:57) [17]
> КиТаЯц © (12.07.04 14:31) [16]
Я в GLScene не разбираюсь, но может всё-таки GLCamera.Position.x? Если нет, то не бейте ногами по лицу... (:
← →
Данил (2004-07-12 21:10) [18]у меня есть, хош дам :)
← →
КиТаЯц © (2004-07-13 07:02) [19]2 ПсихЪ_просто (12.07.04 16:57) [17]
:) Да! Именно Position
← →
Evgeniy_K (2004-07-13 11:06) [20]Сделай матрицу nxn - это карта. Храни там что хочешь..
← →
Sewix (2004-07-13 12:30) [21]
> Данил
давай sewix@mail.ru все равно пригодится.
Карта хранится в StringGrid так что битмаповская карта не понадобилась. Проблема была в положении на карте. Все ок осталось сделать грамотное скольжение вдоль стен. Всем спасибо.
Страницы: 1 вся ветка
Форум: "Игры";
Текущий архив: 2004.11.07;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.05 c