Есть игра Cat Physics для iOS. На Спекртум сделать обрезанный порт вполне реально
Есть игра Cat Physics для iOS. На Спекртум сделать обрезанный порт вполне реально
newart, зачем сидеть на форуме запорожцев, если ездиешь на бентли?))
Я физик по образованию. С удовольствием поучаствую в разработке физического движка. Сам уже давно хотел этим заняться, но все никак не решался. Так что, krt17, давай скооперируемся! У меня была идея сделать "Physics demo", в котором бы демонстрировались разные физические явления. Кроме механики твердого тела, например, волновые явления.
Есть мнение, что наш мозг знает физику на подсознательном уровне, причем независимо от успеваемости в школе по этому предмету. Это знание возникло в ходе эволюции и используется для ориентирования в окружающем мире, для различения живых объектов от неживых. Скажем, если некий объект не нарушает законов механики - значит он мертвый, т.к. движется по относительно простым траекториям, предсказываемых этой моделью. Если же он явно нарушает законы механики, например, резко меняет скорость и направление движения, особенно в воздухе - значит он живой, т.е. сложно устроен и имеет особые средства (крылья, ноги, хвост) для "нарушения" законов механики.
Именно поэтому, когда мы видим на экране движение, подчиненное законам механики, мы испытываем чувство такого глубокого удовлетворения. Потому что при этом наш мозг не должен в очередной раз сталкиваться с неестественностью движения на экране, столь непривычного ему за длительный эволюционный период.
Тут есть еще один момент. Живые объекты также могут быть категоризованы по характеру их движения. Например, хаотическое движение может означать каких-нибудь жуков, а резкие выпады - хищника. Но компьютерная анимация до появления физических движков предлагала нам много такого, что не вписывается ни в какие модели, существующие в нашем подсознании. В окружающем мире просто нет таких движений. Поэтому просмотр такой анимации и проигрывает по ощущениям от "настоящей" физики.
Теперь перейдем к конкретике. Я думаю, надо начать с того, чтобы реализовать какой-нибудь простенький движок и посмотреть, как он чувствует себя на Speccy в плане скорости, точности, красоты и т.д. Тогда станет ясно, можно ли (и нужно ли) вводить в него дополнительные возможности. Ну и вообще приобретется опыт.
Можно начать с механики тел какой-нибудь простой формы, например, окружностей в гравитационном поле. Окружность тем хороша, что она инвариантна относительно вращения; ее можно рисовать в виде спрайтов, легко делать проверку на столкновения. Пространство можно ограничить стенами, тоже простой формы, для начала. Даже в этих рамках получаются очень красивые траектории, например, если высыпать несколько "шариков" на стол с наклонной поверхностью.
План реализации такого движка мог бы быть таким:
1) Реализация движка на ЯВУ на PC. Например, я бы это сделал на Матлабе, там и с графикой легко работать, тормозно правда.
2) Оптимизация алгоритмов на PC, избавление от максимально возможного количества умножений и вычисления других сложных функций
3) Кодирование на Z80-ASM базовых графических процедур: отображение спрайтов фиксированного размера, отображение стен. Оптимизация графики насколько это возможно.
4) Портирование алгоритмов физики с PC на Z80-ASM
5) Сбор и отладка полученной системы.
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Попробуйте Пинбол сделать.
кАлючее жЫвотное
>>Даёшь гравити на спектруме!!!!
Даёшь гравити на спектруме [2]
Там простая графика, мотоцикл - два круга и три палки. Рельеф - тоже несколько линий. Думаю, спектрум вполне потянет.
Вот именно, это все довольно сложно. Для тел хоть сколько-нибудь сложной формы, даже квадратов, нужно много векторных вычислений, а это - умножения и даже синусы. Скорости будут сопоставимы с игрой "Elite", если удастся эффективно реализовать вычисления, ну или с попытками сделать на Спектруме трехмерную графику. Что у нас там, кубики крутятся на экране, тетраэдры? Вспоминается LSD Megademo, векторная часть. Это от силы пара десятков векторов. В Elite может до 50.
В общем, я считаю, что начать лучше все-таки с кружочков. Даже это будет не очень просто. Проверка на столкновение будет простой, но при столкновениях надо моделировать трение, а еще кружочки будут раскручиваться вокруг своего центра.
Есть еще один вариант для тел сложной формы - растровое представление формы. При этом надо иметь их изображение при повороте на разные углы, а проверка на столкновение будет сводиться к проверке спрайтов на коллизию. Не знаю, хватит ли точности для более-менее красивой анимации, но как вариант.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)