![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
как сделать звезды в glscne?
mrk © (2003-06-15 16:33:00)
Космический корабль, вид от 3-го лица.При полете по экрану должны пролетать звезды, от центра до краев, как в скринсейвере "сквозь вселенную" в виндах.Не знаю как это реализовать.
Alek Aaz (2003-06-18 08:52:00) [1]
В новой CVS-ной версии есть объект TGLPoints.
mrk (2003-06-16 18:34:00) [2]
Есть - Gl_points в glscene?
Juster~ (2003-06-16 18:23:00) [3]
Вы чего?! КАКИЕ ТОРМОЗА?! Тормоза от GL_POINTS? Это же обычные точки, не надо никаких партиклов...А выглядеть будет хуже, потому что она плоская. Тогда уж надо несколько слоев делать, а это накладно. Еще сомнения есть?
mrk (2003-06-16 14:47:00) [4]
Да, с частицами тормоза пойдут в glscene скорее всего.Буду пробовать текстуру.
pasha676 (2003-06-16 13:28:00) [5]
Но движущаяся текстура должна вроде сожрать меньше ресурсов. И вроде выглядеть будет не плохо. Наверное.
Juster~ (2003-06-16 13:01:00) [6]
2pasha676: нет, текстуры не надо. надо частицы
2Asteroid: нет, повторы заметны не будут
pasha676 (2003-06-16 10:11:00) [7]
Первое что приходит в голову - двигающаяся текстура. Второе что приходит в голову - частицы.
Asteroid (2003-06-16 03:11:00) [8]
> Juster~ (15.06.03 18:26)
Во только если их просто перемещать на другой край, будут заметны повторы. Можно добавить случайное появление "мусора" на стенке - все равно вряд ли кто заметит несоответствие
mrk (2003-06-16 00:50:00) [9]
тема звучала так - "как сделать звезды в glscne?" :)
Juster~ (2003-06-15 23:55:00) [10]
Ааа, ты GLScene юзаешь, ну тогда сам думай...
mrk (2003-06-15 23:36:00) [11]
to Asteroid
По поводу спрайтов, у меня тоже возникла такая идея, но я думал что проще можно реальзовать.
to Juster~
Всем хорошо, кроме одного - это же..на опенгл..где-то тут про несовместимось с glscene было написано..так что теперь самое сложное осталось..присобачить это к моему прожекту.
Juster~ (2003-06-15 18:26:00) [12]Вобщето звезды не могут так пролетать, это скорее не звезды, а космический мусор. Реализовать очень просто:
создаем массив точек(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;
Asteroid (2003-06-15 18:05:00) [13]
сделай туннель из спрайтов/точек, игрок в центре туннеля. Или же ты хочешь все игровое пространство забить звездами?