Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Столкновение примитивов (http://www.flasher.ru/forum/showthread.php?t=210294)

Ioangum 21.02.2015 19:17

Столкновение примитивов
 
Всем привет! Возник вопрос: как проследить столкновение мувиков? В основном, рекомендуют вставлять в них простые фигуры типа круга и прямоугольника. А вот как столкновение этих примитивов лучше проследить? Пишут про hittest с bitmapdata, но, говорят, что он тормознутый

Godwarlock 21.02.2015 19:20

Всё зависит от поставленной цели. Для чего вам нужно столкновение? Для каждой цели, свой подход.

Ioangum 21.02.2015 19:26

Чтобы определить: столкнулись ли два объекта, перекрывают ли они друг друга

Godwarlock 21.02.2015 19:41

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

Ioangum 21.02.2015 19:45

Оба объекта двигаются. Точнее двигаются мувики неправильной формы, в которые вложены примитивы. Есть hittestobject - он не подходит, так как среди примитивов есть круг, есть hittest point, но там кучу точек придётся ставить. Ещё я нашёл пример http://www.FreeActionScript.com здесь, но у меня так красиво как у них не получается + пишут, что hittest, который там используется медленный.

callme 21.02.2015 19:53

Если это два прямоугольника, то Rectangle.intersects()
http://help.adobe.com/ru_RU/FlashPla...tersects%28%29

Если это две окружности, то если расстояние между их центрами меньше или равно сумме их радиусов, то окружности столкнулись.

Ioangum 21.02.2015 20:19

Спасибо. А если прямоугольник и окружность? Или, если овал?

Psycho Tiger 23.02.2015 06:52

Самый варик – математически определять. Например, http://noregret.org/tutor/n/collision/

... да, затея непроста.


Часовой пояс GMT +4, время: 12:59.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.