Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Игры";
Текущий архив: 2004.01.09;
Скачать: [xml.tar.bz2];

Вниз

как сделать звезды в glscne?   Найти похожие ветки 

 
mrk   (2003-06-15 16:33) [0]

Космический корабль, вид от 3-го лица.При полете по экрану должны пролетать звезды, от центра до краев, как в скринсейвере "сквозь вселенную" в виндах.Не знаю как это реализовать.


 
Asteroid   (2003-06-15 18:05) [1]

сделай туннель из спрайтов/точек, игрок в центре туннеля. Или же ты хочешь все игровое пространство забить звездами?


 
Juster~   (2003-06-15 18:26) [2]

Вобщето звезды не могут так пролетать, это скорее не звезды, а космический мусор. Реализовать очень просто:
создаем массив точек(60-100), при перемещении корабля перемещаем все точки, но в инвертированном направлении, если они выйдут за границу (10-20), перемещаем на другой край (это создаст впечатления их появления). Вот мой класс:

constructor TGSpaceTrash.Create;
var i : Integer;
begin
for i := 0 to 60 do
Layer[i] := VectorMake(random*32-16, random*32-16, random*32-16);
end;

procedure TGSpaceTrash.Update;
var i : Integer;
vel : TVector;
begin
for i := 0 to 60 do
begin
vel := Player.Velocity;
NegateVector(vel);
AddVector(Layer[i], vel);
if Layer[i][0]>16 then Layer[i][0] := -16;
if Layer[i][0]<-16 then Layer[i][0] := 16;
if Layer[i][2]>16 then Layer[i][2] := -16;
if Layer[i][2]<-16 then Layer[i][2] := 16;
end;
end;

procedure TGSpaceTrash.Render;
var i : Integer;
begin
glPushMatrix;
glTranslatef(Player.Position[0], Player.Position[1], Player.Position[2]);
glBegin(GL_POINTS);
for i := 0 to 60 do
( @Layer[i]) [2] Вобщето звезды не могут так пролетать, это скорее не звезды, а космический мусор. Реализовать очень просто:
создаем массив точек(60-100), при перемещении корабля перемещаем все точки, но в инвертированном направлении, если они выйдут за границу (10-20), перемещаем на другой край (это создаст впечатления их появления). Вот мой класс:

constructor TGSpaceTrash.Create;
var i : Integer;
begin
for i := 0 to 60 do
Layer[i] := VectorMake(random*32-16, random*32-16, random*32-16);
end;

procedure TGSpaceTrash.Update;
var i : Integer;
vel : TVector;
begin
for i := 0 to 60 do
begin
vel := Player.Velocity;
NegateVector(vel);
AddVector(Layer[i], vel);
if Layer[i][0]>16 then Layer[i][0] := -16;
if Layer[i][0]<-16 then Layer[i][0] := 16;
if Layer[i][2]>16 then Layer[i][2] := -16;
if Layer[i][2]<-16 then Layer[i][2] := 16;
end;
end;

procedure TGSpaceTrash.Render;
var i : Integer;
begin
glPushMatrix;
glTranslatef(Player.Position[0], Player.Position[1], Player.Position[2]);
glBegin(GL_POINTS);
for i := 0 to 60 do
glVertex3fv(@Layer[i]);
glEnd;
glPopMatrix;
end;



 
mrk   (2003-06-15 23:36) [3]

to Asteroid
По поводу спрайтов, у меня тоже возникла такая идея, но я думал что проще можно реальзовать.

to Juster~
Всем хорошо, кроме одного - это же..на опенгл..где-то тут про несовместимось с glscene было написано..так что теперь самое сложное осталось..присобачить это к моему прожекту.


 
Juster~   (2003-06-15 23:55) [4]

Ааа, ты GLScene юзаешь, ну тогда сам думай...


 
mrk   (2003-06-16 00:50) [5]

тема звучала так - "как сделать звезды в glscne?" :)



 
Asteroid   (2003-06-16 03:11) [6]

> Juster~ (15.06.03 18:26)
Во только если их просто перемещать на другой край, будут заметны повторы. Можно добавить случайное появление "мусора" на стенке - все равно вряд ли кто заметит несоответствие


 
pasha676   (2003-06-16 10:11) [7]

Первое что приходит в голову - двигающаяся текстура. Второе что приходит в голову - частицы.


 
Juster~   (2003-06-16 13:01) [8]

2pasha676: нет, текстуры не надо. надо частицы
2Asteroid: нет, повторы заметны не будут


 
pasha676   (2003-06-16 13:28) [9]

Но движущаяся текстура должна вроде сожрать меньше ресурсов. И вроде выглядеть будет не плохо. Наверное.


 
mrk   (2003-06-16 14:47) [10]

Да, с частицами тормоза пойдут в glscene скорее всего.Буду пробовать текстуру.


 
Juster~   (2003-06-16 18:23) [11]

Вы чего?! КАКИЕ ТОРМОЗА?! Тормоза от GL_POINTS? Это же обычные точки, не надо никаких партиклов...А выглядеть будет хуже, потому что она плоская. Тогда уж надо несколько слоев делать, а это накладно. Еще сомнения есть?


 
mrk   (2003-06-16 18:34) [12]

Есть - Gl_points в glscene?


 
Alek Aaz   (2003-06-18 08:52) [13]

В новой CVS-ной версии есть объект TGLPoints.



Страницы: 1 вся ветка

Форум: "Игры";
Текущий архив: 2004.01.09;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.011 c
1-25327
Ega23
2003-12-22 15:43
2004.01.09
Как в message указатель засунуть?


3-25239
vovchik
2003-12-11 09:32
2004.01.09
Строка подключения ADOQuery


1-25329
Olivka
2003-12-22 16:09
2004.01.09
Fastreport


14-25563
Сатир
2003-12-18 13:15
2004.01.09
System Tray Trouble


6-25481
Novenkij
2003-11-07 11:49
2004.01.09
Скорость соединения





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский