Главная страница
    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.47 MB
Время: 0.023 c
1-25308
lucky4me
2003-12-25 14:07
2004.01.09
как вставить кнопку/меню в OutlookExpress


1-25392
Vasilij
2003-12-24 18:34
2004.01.09
C++ DLL в Delphi


6-25476
Anarki
2003-11-07 23:58
2004.01.09
Проблема с idSMTP


1-25407
int64
2003-12-24 15:56
2004.01.09
Подстановка стрингов.


1-25286
kotel
2003-12-25 16:53
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский