Информация

Обсуждало 2 человека

Заметка номер 2544

Флейм
06 июня 2009 в 21:49:20

О применении физики и математики в создании игр.
Часто ли эти науки применяются в создании игр? Да. Просто мы об этом иногда не догадываемся)) У кого-то в подписи на флэшер.ру была такая фраза: "В моих играх моя физика". Действительно, не всегда обязательно создавать настоящую математическую модель физических процессов и явлений в обычной мини- (или даже МЕГА-) игре достаточно всего лишь красиво соврать!) Например, вы делаете игру с трением, то есть при отпускании всех клавиш объект должен тормозить. Реализуется это так: умножаем скорость на число, меньшее единицы. Получаем бесконечно убывающую геометрическую прогрессию, то есть скорость будет стремиться к нулю и в определённый момент флэш округлит её до нуля. Но на самом деле трение уменьшает скорость по линейному закону (сила постоянна). Однако вычитать из скорости неудобно, так как она может иметь разные знаки (тело движется в разные стороны), поэтому и придумали очень красивый вариант - умножать скорость, например, на 0.9. Но человек, не знающий математики, врядли додумается до этого, многие вообще уверены, что при умножении число может только увеличиваться!)) Так что для того, чтобы уметь незаметно искажать физику, нужно знать саму физику (чтобы понимать, что можно искажать) и математику (чтобы знать, как можно искажать).
И действительно, "врать" нужно уметь. Например, в платформере никак не покатит прыжок с постоянной скоростью подъёма и падения, там нужно применять равнопеременное движение, то есть в начале прыжка герой имеет определённую скорость, которая изменяется по линейному закону. Таким образом она уменьшится до нуля (в высшей точке) и станет отрицательной (тело начинает падать), а к моменту приземления скорость по модулю будет такой же, как в начале, только с противоположным знаком (другое направление).
Как видите, иногда проще не придумывать свой способ, а воспользоваться уже придуманным. Для примера написал простую программу - модель столкновения двух шаров, в которой используется закон сохранения импульса. Вот часть кода:
<table class="win_text" style="width:100%;height:100px;background-color:#FFFFFF"><tr><td><div class=""><pre>var U = V*m/(m+M2); //собственно закон сохранения импульса (в проекции)._root.onEnterFrame = function() { if (ball2._x-ball1._x<64) { ball1._x += U; ball2._x += U; } else { ball1._x += V; }};</pre></div></td></tr></table>
А математика применяется не только в моделировании движения. Переменная, массив, цикл, условное предложение и т.д., даже алгоритм - понятия чисто математические. Не будем забывать о том, что всё программирование основано на логике - огромном разделе математики. Я уж не говорю о том, что математика - гимнастика для мозгов. Вообще никогда не помешает её знать.

Обсуждение (вниз)

Не хватает только вашего мнения. Зарегистрируйтесь, чтобы написать!

15 июня 2009 в 20:23:54

Я сегодня, кстати, ЕГЭ по физике сдавал!))

15 июня 2009 в 18:18:12

кстати физика важна не только в играх, но и в мультах ;)

06 июня 2009 в 22:56:38

Но математика учит логически мыслить, рассуждать. А без этого в программировании сами понимаете... Да и программы разные бывают. Сейчас необходимо решать очень много прикладных математических задач: от статистики до полёта марсохода. А кодить очень хорошо научат в любой шараге. В вузах дают нечто большее.

06 июня 2009 в 22:46:01

Написано хорошо. Но не надо знать много математики чтобы написать игру. Я вот ща в универе учусь на прогера. У нас есть дисциплина "Математический анализ", так вот там мы изучам всякие пределы, тройные интегралы, ряды и т.д Но они нафик не нужны программеру. По крайней мере я не встречал те проблемы, где эти знания нужны.
Fundux.ru v.3.0 © 2006-2021 AleXNoD
Портал русских флеш игр и flash мультов