Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Игры";
Текущий архив: 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
1-1098809330
clampo
2004-10-26 20:48
2004.11.07
Spin.dcu


14-1098426785
gn
2004-10-22 10:33
2004.11.07
Модификация автомата Калашникова:


1-1098562792
redlord
2004-10-24 00:19
2004.11.07
opendialog+multiselect


1-1098687169
svv
2004-10-25 10:52
2004.11.07
Как добавить TAction код клавиши + с цифровой клавы


14-1097830782
Prohodil Mimo
2004-10-15 12:59
2004.11.07
Как в ВинХР запретить юзеру устанавливать программы?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский