Обнаружение столкновений сферы с прямоугольником в ActionScript 3.0? - PullRequest
0 голосов
/ 19 апреля 2010

последние две недели я работаю над созданием системы обнаружения столкновений для моей игры во флеш-памяти CS4. Неважно, что я пытаюсь по какой-то причине, я просто не могу это сделать, и я не знаю, как это исправить. Это никогда не было проблемой для меня, я бы даже согласился на столкновение прямоугольника с прямоугольником, если бы мог, но независимо от того, что я делаю, я в итоге все испортил. Каким-то образом обнаружение столкновений либо вообще не работает, работает на одну сторону и прыгает через стену с другой стороны, либо я думаю, что в какой-то момент это сработало на две стороны, пока я не удерживал более одной клавиша движения.

Я постоянно пересматриваю то, что делал снова и снова, сейчас у меня нет исходного кода для представления. Я полностью потерян и растерян, и мой срок выполнения этого - сегодня, через несколько часов. Я действительно хотел выяснить это самостоятельно, но, честно говоря, я просто не вижу, что я могу сделать, у меня есть обнаружение столкновений сферы сферой, отлично работающее для моего игрока и других сфер, но стены выстроены в квадраты, чтобы сформировать длинные прямоугольники, и я просто не могу заставить его работать. Я динамически загружаю квадратные блоки в виде плиток для формирования динамически загружаемой карты, а затем перебираю каждый отдельный блок, чтобы определить, произошло ли столкновение с игроком. Я думаю, что я каким-то образом неправильно управляю результатами, или, может быть, мне нужно каким-то образом определить, в каком направлении игрок ударил стену, но я просто не знаю, как это сделать.

Мне очень жаль, что я не могу дать исходный код, у меня просто ничего нет. Последние 3 часа я смотрел на экран, пытаясь что-то придумать, но ничего мне не пришло, поэтому, пожалуйста, если кто-нибудь может помочь мне с примером из флэш-игры или чего-то подобного, я был бы очень благодарен! (Я делал это бесчисленное количество раз в C ++, C # и Java. Я не понимаю, что происходит во Flash: - (((()

Ответы [ 2 ]

1 голос
/ 22 апреля 2010

Не отчаивайтесь, мы все были в одной точке:)

Используйте двумерный физический движок, если это что-то более сложное. Он может заставить вас работать довольно быстро:

http://box2dflash.sourceforge.net/

Некоторые уроки по этому вопросу можно найти здесь: http://www.emanueleferonato.com/category/box2d/

Вы можете проверить другие инструменты для разработчиков Flash здесь:

http://flashontherocks.com/flash-developer-toolbox/

1 голос
/ 19 апреля 2010

Это может помочь вам ... http://www.tink.ws/blog/as-30-hittest/

...