![]() |
Удаление объекта со сцены
Здравствуйте! Появилась проблема при удалении объекта со сцены (объект находится в массиве, хотя это, скорее всего, не важно). Код:
Код AS3:
Цитата:
Вопрос в общем, почему он не удаляется? :) Я так понимаю, что вызываю его не в том месте, но я понятия не имею как решить данную проблему, во флеше недавно. |
Скорее всего ты проверяешь столкновение пули и зомби путем сравнения координат, зомби продолжает находится на той же координате, только его не видно, но тогда ты пытаешься удалить из списка отображения объект, которого там нет - и получаешь ошибку. Проверяй при столкновении пули с зомби находится ли зомби на экране или нет
|
Цитата:
Надеюсь я правильно понял то, что Вы написали). |
В документации не указано, что аргумент метода hitTestObject должен быть объектом, расположенным на сцене. Отсюда true при сравнении и ошибка при попытке удалить со сцены то, чего на сцене нет.
Интересно, а такой код тоже выдает ошибку? Код AS3:
|
Но hitTestObject это же проверка того, не пересекаются ли два сравниваемых объекта, и так как после того как пуля пропала, зомби ни с кем не пересекается, что значит false. Может я и не прав, чего-то не знаю, поэтому это догадки.
И вот второй раз говорят, что пытается удалить то, чего нет. Не могу понять, он же вроде как вообще не разу не может удалится, так как хоть часами стреляй, пуля будет пропадать и всё будет происходить так, будто зомби на месте остается и никуда не девается. Ваш код тоже выдает ошибку :(. На всякий случай: ошибка вылазит именно тогда, когда я стреляю уже в невидимого зомби (второй и остальные разы). |
Покажите что это за функция knowzombie() и кто такой Zombie у вас в if'e, вы всех зомби в одном мувике 'Zombie' держите? Тогда hitTest может быть тру, вы же его не удаляете.
Возможно вы удаляете не того зомби из массива, соответственно на него ссылка остаётся, а когда вы опять пытаетесь его удалить, то выскакивает ошибка. |
Цитата:
Код AS3:
zombie1 - класс самого зомби, к которому привязан символ в библиотеке. Вызывается функция из главной функции: createZombies(3); Кстати зомби должно быть три на поле, но появляется один (с этим тоже ещё не разобрался). В trace показывается, что они трое появились по разным координатам, но виден только последний (второй заменил первого, третий второго). knowzombie узнает какой именно зомби из массива Zombies столкнулся с пулей. Код AS3:
|
То есть по сути - Zombie это один объект, вы заполняете массив ссылками на один и тот же объект, потому и появляется всего один зомби
Код AS3:
Надо создавать нового зомби для каждого элемента массива. И ещё - вы 2 раза проверяете hitTest - в collisions, и в knowzombie - зачем ? Немного не понимаю почему всё же выдаёт hitTest. Сделайте трейс Код AS3:
|
Долго писал этот пост, и когда уже дописал, всё заработало (после того как убрал второе сравнение). Поэтому если кто-то попадет в эту тему с похожей проблемой, пост оставлю написанным!
Всем спасибо за то, что откликнулись, особенно AlexLucas!! :) Цитата:
Цитата:
Цитата:
Код AS3:
|
| Часовой пояс GMT +4, время: 11:41. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.