Вы хотите начать с физического движка, который использует Google Gravity: Box2Djs , который является портом javascript Box2D .Вы можете прочитать руководство для Box2D, чтобы узнать, как его использовать, хотя само руководство гласит, что у вас будет мало представления о том, что вы делаете, не имея некоторых знаний физики твердого тела (сила, импульс, крутящий момент и т. Д.), Хотя эти примерыпомочь вам начать работу.
Если вы хотите написать физический движок самостоятельно, вам придется, по крайней мере, реализовать двухмерную динамику твердого тела и обнаружение столкновений, чтобы оно выглядело как примеры, которые вы дали.Учебное пособие для этого будет называться классом компьютерного моделирования и будет иметь линейную алгебру и физику, которые мне необходимы, это не тривиальное задание.
После этого вам нужно будет изучить методы анимации JavaScript.Я рекомендую узнать о window.requestAnimationFrame
.Использование setInterval(stepFunction, time)
будет работать, но не так эффективно, как в современных браузерах.