Форум 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=188410)

XMON 02.12.2012 20:40

как можно проверять столкновение объекта одного класса с объектом другого класса?
 
как можно проверять столкновение объекта одного класса с объектом другого класса?

Korchy 02.12.2012 20:57

Столкновение классов вы проверять не можете. Вы можете проверять столкновение геометрических форм, описываемых классами. По поводу столкновения геометрии: все зависит от того, что с чем сталкиваете, в статике или в движении. В общем случае погуглите "collision detection"

Tails 02.12.2012 21:23

hitTestObject

XMON 03.12.2012 08:55

а как тогда в классе проверять столкновение с разными объектами у которых нет имени. например: этим объектам присвоить какойнибуть 1 тип и смотреть, когда другой объект с другим типом столкнется сними.

про hitTestObject я знаю, я не знаю как реализовать т.к. с классами я знаком недавно.

kackbip 03.12.2012 09:56

Предположим ваши геометрические фигуры сохранены в массиве. Пробегаетесь по массиву и делаете им хтиТестОбжект с какой-нибудь другой фигурой.

XMON 03.12.2012 11:11

я бы давно так сделал, проблема в том что неизвестно сколько точно будет проверятся предметов на столкновение. их может быть 10 или 12. если делать так, то будут вылазить ошибки.

Hauts 03.12.2012 11:24

Цитата:

если делать так, то будут вылазить ошибки.
— ошибки будут "вылазить" если делать неправильно.

Проверяйте в цикле. Берете первую форму и проверяете со всеми остальными. Берете вторую и делаете то же самое.

Нет универсального встроенного волшебного метода для проверки столкновений чего-хотите, сколько-хотите и как-хотите. Все руками делается. И головой.

Tetraeon 03.12.2012 12:32

Если есть массив с объектами и вы незнаете находятся ли эти объекты в данный момент в контейнере с объектами можно заранее проверить их наличие:
Код AS3:

for(var i:int=0; i<objArray.length; i++)
{
    if((container.objArray[i])&&(objArray[i].hitTestObject(obj)))
    {
      trace('hit');
    }
}


XMON 03.12.2012 12:47

как можно заполнить массив (созданный в классе) с главной линии времени, а потом управлять элементами массива из класса?

Добавлено через 50 минут
помогите пожалуйста

kackbip 03.12.2012 16:21

Никак.
Делайте так:
1) У вас есть игровое поле. Оно владеет всеми фигурами.
2) Поле создает фигуры и сохраняет ссылки на них в массиве.
3) Поле же инициирует проверки на столкновение. Скажем, после каждого передвижения объектов.


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

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