Форум программистов, компьютерный форум, киберфорум
Наши страницы
ActionScript
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
tihomir
1 / 1 / 1
Регистрация: 25.02.2014
Сообщений: 39
1

Реакция на столкновение

01.04.2014, 08:53. Просмотров 764. Ответов 11
Метки нет (Все метки)

Здравствуйте уважаемые гуру!!

Задумал я написать реакцию на столкновение, но возникла одна проблема. Символы которым нужно сталкиваться находятся в разных слоях(один символ падает(obj1), второй бегает и ловит их корзиной(obj2))

И при написании вот этого:
ActionScript 3
1
2
3
4
if (obj1.hitTestObject (obj2))
    {obj1.removeEventListener(Event.ENTER_FRAME, polet);
     removeChild (obj1);
    }
Выдаёт естественно ошибку:
1120: Обращение несуществующего свойства obj2.
Как можно выкрутиться?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.04.2014, 08:53
Ответы с готовыми решениями:

Проверка на столкновение
Делаю проверку на столкновение - смысл в том, что в каждый объект вставлен MovieClip под именем hit...

Столкновение объектов
Ребят выручайте :) Есть класс Bot и есть класс Bullet. В каждом классе создаются соответсующие...

Проверка на столкновение
Есть массив со списком объектов на сцене. При нажатии стрелок, эти объекты двигаются, создавая...

Столкновение объектов
Здравствуйте. Я раньше немного программировала на as2, и сейчас решила освоить as3, пока еще он мне...

Ограничение передвижения и столкновение
Добрый день. Столкнулся с задачей - ограничение передвижения мувика в области с произвольными...

11
Theoryofgames
253 / 237 / 50
Регистрация: 20.12.2011
Сообщений: 707
01.04.2014, 10:07 2
Цитата Сообщение от tihomir Посмотреть сообщение
Выдаёт естественно ошибку:
Ничего естественного в этом нет. Слои введены исключительно для удобства дизайнера, компилятор их игнорирует. Ошибка происходит из-за того, что в кадре, в котором вызывается дайнный код отсутствует obj2.
0
tihomir
1 / 1 / 1
Регистрация: 25.02.2014
Сообщений: 39
01.04.2014, 10:24  [ТС] 3
Ну эт понятно. А как сделать если obj2 находится внутри другого клипа?

Добавлено через 6 минут
Хотя непонятно) У меня весь код вызывается в первом кадре
0
Theoryofgames
253 / 237 / 50
Регистрация: 20.12.2011
Сообщений: 707
01.04.2014, 11:15 4
Цитата Сообщение от tihomir Посмотреть сообщение
Ну эт понятно. А как сделать если obj2 находится внутри другого клипа?
ActionScript 3
1
2
3
4
5
6
7
8
9
10
11
12
var mc1:MovieClip; // клип, который содержит obj1
var mc2:MovieClip; // клип, который содержит obj2
// проблема еще в том, что данный клипы могут содержать в себе объекты не на всех кадрах
//  т.е. например на 9 кадре ссылка на obj2 к mc2 есть, а на 11 этой ссылки уже нет
// т.к. в жтом кадре obj2 не присутствует на экране
// здесь 2 выхода:
// первый - не убирать obj2 с экрана, а делать его невидимым
// второй - проверять если ли в данный момент ссылка
if (mc1.hasOwnProperty(obj1) && mc2.hasOwnProperty(obj2) && mc1.obj1.hitTestObject(mc2.obj2))
{
  // делаем то, что хотели
}
0
tihomir
1 / 1 / 1
Регистрация: 25.02.2014
Сообщений: 39
01.04.2014, 14:13  [ТС] 5
Выдаёт ту жё ошибку.

У меня такая ситуация 1 клит это падающий предмет, во втором клипе персонаж и предмет которым он должен ловить 1 клип.

Что я не так делаю?)

Добавлено через 26 минут
А если делать проверку с целым клипом а не с вложенным в него то работает
0
Theoryofgames
253 / 237 / 50
Регистрация: 20.12.2011
Сообщений: 707
01.04.2014, 14:23 6
Цитата Сообщение от tihomir Посмотреть сообщение
А если делать проверку с целым клипом а не с вложенным в него то работает
Я же Вам уже объяснил, что проблема в том, что в момент проверки столкновения ссылка на вложенный клип отсутствует, почему она отсутствует я Вам сказать не могу не увидев Вашего проекта.
0
tihomir
1 / 1 / 1
Регистрация: 25.02.2014
Сообщений: 39
01.04.2014, 14:54  [ТС] 7
Вот, в приложенииСтолкновение.rar
0
tihomir
1 / 1 / 1
Регистрация: 25.02.2014
Сообщений: 39
02.04.2014, 10:57  [ТС] 8
Чёт вообще не понятно почему не работает)
0
TanaTiX
Модератор
2798 / 1655 / 168
Регистрация: 19.02.2011
Сообщений: 6,018
Завершенные тесты: 2
02.04.2014, 11:13 9
Это же ужасно раскидать код по разным слоям кадра. Пишите в классах.
0
tihomir
1 / 1 / 1
Регистрация: 25.02.2014
Сообщений: 39
02.04.2014, 11:22  [ТС] 10
Эт мне переделывать всё?)
0
TanaTiX
Модератор
2798 / 1655 / 168
Регистрация: 19.02.2011
Сообщений: 6,018
Завершенные тесты: 2
02.04.2014, 11:24 11
tihomir, почитайте тут
Если и переделывать, то немного (до настоящего момента), а разработка станет проще, особенно после осознания сути.
0
tihomir
1 / 1 / 1
Регистрация: 25.02.2014
Сообщений: 39
03.04.2014, 12:59  [ТС] 12
Всем спасибо) Сделал так:

ActionScript 3
1
if (Obj1.hitTestObject(Object(root).Pr.obj2))
Где obj2 являтся именем экземпляра а Pr символом в котором он находится
0
03.04.2014, 12:59
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.04.2014, 12:59

Столкновение двух объектов
Как можно определить пересекаются 2 объекта или нет. Сами мувиклипы разной формы. hitTest не...

Столкновение
Здравствуйте. У меня возникла проблема. Я хочу сделать так чтобы при столкновение он как бы...

Столкновение
Есть несколько предметов. Я одел на каждый BoundingBox и на обьект которым я управляю. Только вот...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru