Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.01.09;
Скачать: CL | DM;

Вниз

как сделать звезды в 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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.018 c
1-25335
vasyaVN
2003-12-22 13:01
2004.01.09
Перерисовка компонента ТCustomControl


1-25357
Vogus
2003-12-23 09:51
2004.01.09
Поделитесь некоторыми принципами при создании CGI для Apache


1-25437
MV
2003-12-23 18:05
2004.01.09
А можно ли, отловив в обработчике формы сообщение, скажем WM_PAIN


14-25558
lipskiy
2003-12-15 02:04
2004.01.09
Эмулятор принтера?


1-25355
mefistofel
2003-12-25 15:52
2004.01.09
КАК из любова файла