Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Игры";
Текущий архив: 2005.07.31;
Скачать: [xml.tar.bz2];

Вниз

Физика или шизика для аркады?   Найти похожие ветки 

 
Kobik   (2005-04-12 20:06) [0]

Аркада. Едет танчик. Производит выстрел перпендикулярно направлению своего движения. Теоретически вектор скорости снаряда сложится из начального (от выстрела) плюс скорость танка в момент выстрела. В жизни так и есть и все хорошо. Но в аркаде для играбельности приходится делать скорость снаряда сравнимой со скоростью танка. В результате получается не очень красиво. Дак что же нужно для игры? Физика или шизика (как выразился Думкин :))?

Проблема появилась после того, как я стал разбирать "почему при выстреле дым от ракеты уходит в сторону от корпуса". С дымом теперь все красиво и на быстрых снарядах все выглядит как надо. А вот с медленными что делать я ХЗ...

Проект стоит из-за такого пустяка :) Посоветуйте что-нибудь.


 
XProger ©   (2005-04-12 20:22) [1]

Это решать разработчику проекта... ;)


 
П7   (2005-04-12 20:26) [2]

Всё брось и едь на море! (:


 
BoAlSe ©   (2005-04-13 06:25) [3]


> В результате получается не очень красиво


Ты мусор из движущейся машины когда-нибудь выбрасывал? Он Достаточно красиво движется, потому что он и должен так двигаться. Возможно ты просто не достаточно точно с точки зрения физики описал модель движущегося саряда.


 
Kobik   (2005-04-13 08:38) [4]

Просто во вторых танчиках скорость корпуса никак не вилияла и это выглядело нормально. А такие изменения сразу кидаются в глаза.
Ладно. Скоро демку выложу, тогда посмотрим :)


 
Zak3D[@Tm] ©   (2005-04-13 09:42) [5]

Kobik
Это типа твои давно обещанные танчики?
Ждёмс... : )


 
BoAlSe ©   (2005-04-13 09:54) [6]

О физике. В рельости, какой наряд ожет летать со скоростью танка?
Ведь если швырнуть такое тело с такой скоростью оно улитит совсем недалеко, сила тяжести сделает своё дело. Снаряд, имеющий маленькую скорость и летящий достаточо далеко может быть следующим:
1. Если его снабдить пропеллером (как у вертолёта). Тогда этот снаряд будет лететь имено так, как написанно в вопросе. Такой штукой будет сложновато попасть при движении танка.
2. Снаряд представляет из себя сгусток энергии, эдокий световой комок, при контакте высвобождающий много разрушающей силы. Движение такой штуки не будет зависить от того, стоит танк или нет.
Так что выбрй - либо пропеллер, либо световое оружие, либо никакой физики.


 
BoAlSe ©   (2005-04-13 09:59) [7]

Вместо пропеллера можно использовать реактивную силу, которая поднимает снаряд вверх. Однако дорого будет стоить такая вешь в современном мире военной техники. Хотя если твой так выполняет супер-мега важную миссию, деньги второй вопрос.


 
BoAlSe ©   (2005-04-13 10:22) [8]

Извиняюсь, что некоторые буквы в словах пропушены, на работе клава неудобная.


 
XProger ©   (2005-04-13 14:02) [9]

изначально снаряд имеет кол-во движения (импульс) p = mv,
где m - масса снаряда, v - скорость танка.

Во время выстрела взрывчатое вещество в стволе детонируется и снаряд преодретает импульс p = mv + MV, где M - масса взрывчатого вещества, а V - скоротьраспространения взрыва в стволе. Часть этого импульса передаётся танку, вследствии чего его отбрасывает в сторону противополоужную выстрелу.

Исходя из скорости детонации взрывчатого вещества - снаряд летит со скоростью близкой к скорости звука.
Так что ты не заметишь эти несчастные 40 км/ч переданные от танка снаряду. Вследствии чего скоростью танка ты можешь принебречь... Так же как и сопротивлением воздуха :)

Есть один вариант для "шизики" - изменить скаляр ускорения танка при выстреле:

acc := acc + cos(Angle1 - Angle2) * TANK_FIREFORCE);

где Angle1 - угол поворота танка, Angle2 - угол под которым происходит выстрел (угол поворота башни). TANK_FIREFORCE - некое константное значение максимального ускорения, которое передаст снаряд при выстреле.


 
BoAlSe ©   (2005-04-13 14:59) [10]


> Так что ты не заметишь эти несчастные 40 км/ч


40 km/h = 2.4 m/s
У современных танков скорость 60 - 80. Едет игрок, стреляет вбок, точно нацелившись в какой-нибудь отдалённый объект. Объект отдалён, скажем на 200 м. Скорость снаряда около 200 м/с. Выходит, что игрок поразит цель, если не учитывать скорость танка. А ведь на самом деле снаряд переместится примерно на 3 м в сторону от объекта, это промах. Поэтому я бы не стал пренебрегать несчастыми 40 км/ч. Можно, чтобы не мудрить с расчётами, использовать рандом, типа это всё скорость верта, да ещё и пушка не может быть идеально точной.
Всё вышесказанное относится к большим скоростям снаряда, Kobik интересуется малыми, поэтому (13.04.05 09:54) [6].


 
марсианин ©   (2005-04-14 23:43) [11]


> 40 km/h = 2.4 m/s

ты имел ввиду 40 km/h ~ 11 m/s


 
boalse ©   (2005-04-15 04:20) [12]


> марсианин ©   (14.04.05 23:43) [11]


Ну конечно 11 m/s.


> А ведь на самом деле снаряд переместится примерно на 3 м
>


Значит не на 3, а на все 11.


 
boalse ©   (2005-04-15 04:42) [13]


> BoAlSe ©   (13.04.05 14:59) [10]


Ха-ха-ха, вру я все. Немного помыслив на эту тему дошол до следующего. Будем рассматривать вид сверху и пусть игрок стреляет не снарядом, а ракетой. Угол ракеты при вылете равен углу ракетница. Первое время вектор скорости ракеты является суммой двух, думаю понятно каких векторов. Но это только первое время, ведь на ракете установлен стабилизатор, и каждое мгновение вектор скорости танка будет оказывать всё меньшее и меньшее влияние на направление ракеты, а вконце концов вообще исчезнет. Поэтому промах будет не 11 метров, поменьше, не знаю на сколько именно, формулы не искал.
Всё вышесказанное должно относиться и к снаряду, ведь он не тупо лети, он ещё и вертится вокруг оси.


 
wiz   (2005-04-15 15:58) [14]

кстати... пришло в голову: если выстрел делается мышой, а значит игрок указывает положение цели, то можно легко посчитать "упреждение" - т.е. башня должна смотреть не точно на цель, а так чтобы после сложения "скорость снаряда" + "скорость танка" получалось всё как надо.


 
XProger ©   (2005-04-15 17:25) [15]

wiz, это уже шизика! Пусть игрок сам предугадывает... ;)
boalse, я тебе ещё раз говорю... на скорости близкой к скорости звука и притом с видом сверху этим отклонением можно будет принеречь! А снаряд тоже испытывает боковое сопротивление воздуха, что может срабатывать как стабилизатор :)


 
Sapersky   (2005-04-15 18:36) [16]

Скорость снаряда около 200 м/с.

У современных танковых пушек - 1600-1700 м/c. Но и дистанции боя соответствующие, так что понятие "упреждение" никуда не делось, особенно при стрельбе по вертолёту :)
Что касается игры... главное чтобы было интересно :)
Во вторых танках скорость снарядов мне показалась заниженной - попасть из неавтоматической пушки было весьма сложно. Так что можно их слегка ускорить, а у автоматов оставить такой же (у них действительно меньше, 800-900 м/c).


 
wiz   (2005-04-17 18:50) [17]

2 Xproger: тогда можно сделать просто - крыжик в настройках "Помощь игроку" (есть крыжик - есть авто-упреждение). В нескольких гоночных "симуляторах" такое было (чуть ли не в одной из NFS"ок)



Страницы: 1 вся ветка

Форум: "Игры";
Текущий архив: 2005.07.31;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.035 c
14-1120705203
Viktop
2005-07-07 07:00
2005.07.31
Установка Update на Delphi 2005


6-1113750182
Nekrom@NT
2005-04-17 19:03
2005.07.31
пересылка скриншота по стеку протоколов TCP/IP


14-1120489191
Soft
2005-07-04 18:59
2005.07.31
Давайте раз и навсегда откроем и закроем проблему МАГИИ!


1-1121143654
Stef
2005-07-12 08:47
2005.07.31
Подсказка дня


14-1120721960
Ega23
2005-07-07 11:39
2005.07.31
Напомните, как с ошибкой бороться?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский