Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Полёт пули(GLScene)


Страницы:   1 2

_sHaDe_ ©   (2005-04-18 18:52:00) 

Помогите plz с такой проблемой. Допустим у меня на сцене актёр с пушкой , из неё по щелчку мышкой вылетает динамически созданная сфера. Круто объяснил...
Вот как делаю
If click = true then begin
  Sphere:=TGLSphere(GLScene1.Objects.AddNewChild(TGLSphere));
  Sphere.Position:=DummyCube2.Position;
  GetOrCreateInertia(Sphere).TranslationSpeed.SetVector(?,?,?); // как расчитать эти координаты
  click:=false;
  end;
Теперь вроде проблема понятна.


XProger   (2005-04-19 13:11:00) [21]

Alek Aaz, где ты видел танки "выпуливающие" снаряд со скоростью "беременного шмеля"? ;)


Alek Aaz   (2005-04-19 03:33:00) [22]

>Я бы создал сферу не от TGLScene а от этой самой пушки..
А я бы не стал. Скажем едет танк и стреляет на ходу. Если танк после выстрела "подпрыгнет" скажем на кочке, то "подпрыгнет" и снаряд(не дай боже нырнет в какой ровчик). Что есть гон.
Проще вычислить направление, куда пушка направлена.


XProger   (2005-04-18 21:22:00) [23]

Игру "Снежки" пишешь? ;)
Ато скорость реальных снарядов сравнима со скоростью звука... т.е. ничего ты не увидишь...


DeadMeat   (2005-04-18 20:51:00) [24]

На твоем месте, я бы сделал чуток по другому (в принципе я так и делал)...
Я бы создал сферу не от TGLScene а от этой самой пушки..
Т.е. допустим пушка - это DummyCube2..
Тада делаем:
Sphere:=TGLSphere(DummyCube2.AddNewChild(TGLSphere));

Теперь наша сфера повернута так, как у нас повернута пушка...
Осталось просчитать относительный поворот.. Но это уже зависит от твоей пушки.. Короче проверяй..

Дальше..
Я бы не пользовался Behaviours-ами... Я бы считал где нить в каденсере.. Т.е. двигал бы пули..
for i:=0 to DummyCube2.Children.Count-1 do
with DummyCube2.Children[i] do // можно еще with TGLSphere (DummyCube2.Children[i]) do... Но это зависит от задачи.
begin
end;

А вообще.. Я уже приводил несколько раз свой пример на стрельбу...
Посмотри на http://code.rpro.ru
Конкурс paratrooper

---
...Death Is Only The Begining...


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо