melky, опять спустя день понял в чем фишка, спс.
На ночь лучше не думать и не писать) |
блин, запутался шарик может столкнуться с блоком в любой его точке, а так как мячик может находиться на нескольких строках одновременно
поэтому есть вариант: проверять все точки окружность которые находятся в данной точке на совпадения с координатами блока, но как их получать за кэшировать или каждый раз определять... буду благодарен за любые подсказки... |
cyber,
В случае с шариком, коллизии и углы отражения становится считать легче, если на уровне логики движка принять шарик за материальную точку, а фигуры расширить радиально на величину радиуса шарика. |
cyber, опять постишь на ночь? или это я уже туплю .. при чём тут строки? что это? почему нельзя определять принадлежность каждой крайней точки (top left; top right; bottom left; bottom right) к окружности (шарику) ?
|
melky, шарик может не только с крайней точкой соприкоснуться а и в любом другом месте допустим он зацепит нижней частью блок , вот 2 варианта
и тогда прийдеться проверять все точки вокруг блока.. |
Дзен-трансгуманист, не совсем понял, если их разширить то тогда шарик будет на фигуре то будет ее затирать по ходу смещения, а если увеличить просто размеры обьектов то он начнет их уничтожать до визуального контакта..
|
cyber,
Да нет же! Для игрока всё визуально остается без изменений. Я просто иллюстрирую как должен выглядеть механизм обработки столкновений изнутри. Столкновения с углами - самые сложные. Я тебе специально изобразил эту механическую симметрию. Там, где ты видишь скругления - это просто окружности, центр каждой из которых находится в одном из исходных углов, и три четверти которых скрыты под внешними горизонтальными и вертикальными отрезками. Когда точка падает на такую окружность, отражение легко посчитать: нужно просто вычислить направление нормали (радиус-вектора) в точке соприкосновения, обратить направление падения и зеркально отразить его от нормали. Касательную я изобразил просто для наглядности принципа, известного как "угол отражения равен углу падения". А нормаль выходит наружу под прямым углом к этой касательной, то есть это просто вектор, направленный из центра окружности к нашей точке в момент их столкновения. Вот. А теперь докажи мне на практике, что мои труды по рисованию не были бесполезны - а не то я разозлюсь и сделаю свой собственный арканоид! :) |
Дзен-трансгуманист, спасибо, буду вспоминать геометрию
Цитата:
|
Цитата:
Супер-оптимизаций никто от тебя не требует, просто организуй всё так, чтобы хотя бы не тормозило.)) |
Цитата:
классный ресурс, кстати |
Часовой пояс GMT +3, время: 23:28. |