![]() |
Отскок мяча
День добрый!
Появилась идея реализовывать физические процессы в Blitz-е(т.к. хоть что-то получается на нём писать). У меня есть мяч, который я запускаю. Как сделать проверку угла, под которым мяч врезается в стену? |
Ответ: Отскок мяча
Делай проверку во время столкновения.
Цитата:
|
Ответ: Отскок мяча
Только вот вопрос: а что такое "n"?
|
Ответ: Отскок мяча
"n" это "с" )) неправильно указал я) "с" - это счетчик, ты в цикле складываешь все углы коллизии, а потом делишь на их количество, тем самым получаешь среднее арифметическое. Это нужно если коллизий будет больше одной.
|
Ответ: Отскок мяча
эмм...а не проще брать координаты мяча при броске и координаты мяча при столкновении с объектом, а потом рассчитывать угол по этим координатам?
![]() Вот как-то так..:rolleyes: |
Ответ: Отскок мяча
Второй вариант не будет работать, т.к. если вращать стену вокруг точки соприкосновения с треугольником, угол альфа будет неизменен:)
По-моему, чтобы работало, надо стороне B быть перпендикулярной стене...:) |
Ответ: Отскок мяча
Берешь и складываешь полученный угол с углом, на который повёрнута стена относительно глобальных координат...чудеса?:-D
Цитата:
На первом рисунке шар ударяет в стену под углом 27 градусов, На рисунке 2 поворачиваем стену на 30 градусов, шар ударяет под углом 57 градусов...мистика;) А отскакивать будет в первом случае на 63 грудуса, а во втором на (63 - 30*) = 33 градуса относительно проекции на ось У (отрезок В) * - угол поворота стены ![]() |
Ответ: Отскок мяча
Аааа, я понял... Это работает тогда, когда мы создаём стену в самом блитзе(у нас есть угол поворота стены), а если у нас целый уровень из стен, то ничего не получится...:) Или я ошибаюсь....
Я вчера весь вечер мозг ломал, как, не зная угла наклона стены и имея лишь одни координаты, расчитать угол...:-D |
Ответ: Отскок мяча
берешь шарик и проверяешь его в цикле
For c% = 1 To CountCollisions(sharik) colEnt = CollisionEntity(model,c) nx# = CollisionNX(colEnt,c) ny# = CollisionNY(colEnt,c) nz# = CollisionNZ(colEnt,c) Next Это и будет вектор наклона стены. А из вектора наклона уже через стандартные команды блитца VectorPitch, VectorYaw находишь углы |
Ответ: Отскок мяча
Вложений: 1
Какой-то странный отскок получился: вдоль плоскостей...:dontknow:
|
Ответ: Отскок мяча
Почему отскока в лобовую нет? :dontknow:
|
Ответ: Отскок мяча
что-то ты тут намудрил с углами, я не знаток тригонометрии и опыта 3д кодинга у меня нет...
Когда меняешь вот это: Код:
ex_bul\xspeed = ex_bul\xspeed + nfx Код:
Если стреляешь вбок стены, то надо ставить вот это: Код:
А вообще возьми PhysX и не мучайся:) |
Ответ: Отскок мяча
Да, тут надо каким-то образом определять грань стены, тогда будет известен знак перед 0.1, не могу понять, как работает CollisionNX(NY, NZ) :-D
Я PhysX пробовал, но что-то в нём до конца не разобрался(видимо, я слишком ленивый :-D), вот и решил собственноручно описывать физические явления понятным для себя языком, но вот, из данного примера, видно, что не так уж всё и понятно :-D |
Ответ: Отскок мяча
Ура!!! Получилось!!! Код, конечно, плохой, но он работает(движение по координатам и гравитация):
Код:
Global player |
Часовой пояс GMT +4, время: 22:48. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot