![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Пишу игру шарики - сверху есть массив шариков, снизу вылетает еще один, после столкновения шарики одинакового цвета исчезают. Так вот проблема в том, что если нет шариков одинакового цвета в месте столкновения, то прилетевший необходимо поставить на строго определенное место в зависимости от того, с каким шариком он столкнулся (если по касательной - справа/слева, иначе 2 положения снизу). Пыталась просчитывать в зависимости от координат центров столкнувшихся шаров, но все равно сохраняется определенная погрешность и периодически шарик становится совсем не туда, куда было бы логично его поставить. Может есть более простой способ высчитывать траекторию прилета?
|
|
|||||
|
Противоречие какое-то, помоему ничего не связывает условия определенная погрешность и становится совсем не туда. Алгоритм надо переработать, так что-бы нарики становились как надо с логической точки зрения, добавить условий, создать массив координат с ячейками куда должны становиться шарики, и брать координаты с этого массива.
__________________
Гоночка |
|
|||||
|
Возможно. Мой алгоритм состоит из великого множества условий - если центры смещены по Х, по Y, если шарик прилетел практически вертикально (именно здесь задается значение отклонения от центра стоящего шарика), также учитывается занята ячейка или нет. Вообщем, мозги уже закипели, а результат все равно какой-то кривой получается.
Получается, что более очевидного способа нет, что ж, буду продолжать в том же направлении... |
|
|||||
|
Регистрация: Aug 2009
Адрес: ХМАО
Сообщений: 47
|
Я так понимаю это игра типа Bubles, которая на Palm'e была. Визуально вспоминаю как она работала, так вот думаю что скорее всего в тот момент когда шарик летит, он уже должен знать куда он станет, на какие ячейки, а в момент полёта просчитывать столкновения и исчезния\не исчезания.
|
|
|||||
|
Да, я думала об этом, но каким образом до столкновения можно определить необходимую ячейку?
|
|
|||||
|
Алгоритм простой: есть центры (точки), где шарики могут остановиться; как только шарик сталкивается с другим шариком, проходим весь массив и выбираем точку с наименьшим расстоянием от центра шарика в момент столкновения.
__________________
if (love is true) break my.heart; |
|
|||||
|
Ну ничего себе, как все оказалось просто!!! Именно то, что нужно. Большое спасибо!
|
![]() |
![]() |
Часовой пояс GMT +4, время: 03:13. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|