|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Можно, я тут... 5 копеек?
Согласен - это очень интересно, вспоминать из школы тригонометрию, из института - сопротивление материалов. Когда-то сутками сидел с карандашом и бумагой чтобы придумать алгоритм столкновения предметов. Единственное, чем могу гордится (если это так можно назвать) - это класс, преобразующий экранные координаты в изометрические, и класс поиска пути волновым алгоритмом по тайлам (ничего особенного, но весь алгоритм собственный). И с удовольствием еще бы поиграл с такими вещами. Но, если бы мне сказали: "Толя, на тебе 100 баксов, сделай игрушку, например, бильярд", то конечно, я бы сел за туторы по Box2D.
__________________
Я мало чего умею, но зато хорошо умею учиться... |
|
|||||
[+1 26.12.11]
[+1 11.09.11] Регистрация: Feb 2011
Сообщений: 117
|
Цитата:
разумно, бильярд за два дня не напишешь ) |
|
|||||
да нет, с погрешностями проблем не было.
Я наверно не очень корректно употребил слово детерминированную. Там всё-же использовались переменные с плавающей точкой, но только в промежуточных расчётах. Можно было конечно перенести промежуточные расчёты на fixedPoint тогда полный детерминизм соблюдался бы. Начал я делать для того чтобы все столкновения в модели происходили в полном соответствии с граф представлением. Задел пикселями один объект другой - столкновение, не задел - не столкновение. Я исходил от экрана и квантования времени. Есть такты обсчёта(кадру грубо говоря) и экан. Объект на экране не может попасть на нецелые координаты. Т.е. пиксель объекта всегда равен пикселю на экране, субпиксельное сглаживание было идеологически отвергнуто. Также continuous collision detection был возведён в абсолют и достигался везде. Естественно во время линеаризации движения и во многих внутренних процессах использовались дробные числа, но после применения сил и резолвинга коллизий всё опят становилось целочисленно. Возникли существенные проблемы с физикой прыжков т.к. я хотел чтобы высота прыжка зависела от длительности нажатия клавиши. Также возникли проблемы с ездящими платформами и трением об них. Трения между объектами у меня небыло вовсе, а было только трение об среду. Хотя потом я придумал как это всё разрулить, к проекту я так и не вернулся. А ведь платформер, придуманы и элементы дизайна и общий сценарий написан...
__________________
:) |
|
|||||
Недо-физику для платформера я писал еще на ас1.
Гравитация, сила трения и т.д. Даже можно было переносить пару объектов, чтобы сделать что-то типа ступенек. Пару костылей позволяли использовать двигающиеся платформы, но к счастью в самой игре они не пригодились. В общем и целом вся эта радость была не шибко большая и не особо сложная. А для чего-то серьезного нужны серьезные затраты времени, сил и всего такого. |
|
|||||
[+1 26.12.11]
[+1 11.09.11] Регистрация: Feb 2011
Сообщений: 117
|
окай )
|
|
|||||
[+1 26.12.11]
[+1 11.09.11] Регистрация: Feb 2011
Сообщений: 117
|
шарики можно таскать , и они не останавливаются
Добавлено через 12 минут есть проблема там с определением веса тела , статика недоделаная . + редкие баги с алгоритмом столкновения (порядка 1 баг на 1к столкновений). Последний раз редактировалось Bazel; 21.12.2011 в 01:06. |
|
|||||
Цитата:
В своем коде, конечно, интересно ковыряться. Но если нужно решать сложную физ. задачу, то предпочтительнее воспользоваться готовыми физ. движками (которых уже напридумывали), в которых уже решены проблемы доморощенных изобретений на порядок лучше. А изучать новое, особенно физику, это всегда очень похвально.
__________________
Кто хочет, тот ищет способ, а кто не хочет - тот ищет причину! |
Часовой пояс GMT +4, время: 20:45. |
|
« Предыдущая тема | Следующая тема » |
Опции темы | |
Опции просмотра | |
|
|