![]() |
Как удалить объект из массива
Есть массив пулек, если пулька улетает за границу экрана или попадает в цель ,то я ее удаляю из массива так:
Код AS3:
|
Странно.. Как такое может быть? Вы передали пульку на удаление и только в методе определился индекс, ход выполнения прерывается и в этот метод попадает другая пулька. Индекс пересчитывается. но старый где-то сохраняется... Даже представить сложно, как такое возможно.
|
Ну я убедился в этом! я сам офигел! в итоге я переписал немного и все заработало, в условии , где у меня колизится пулька с врагами и проверяется вылет пульки за границы экрана я ставлю свойство isDead в true,
а потом в цикле апдейта я проверяю isDead и там же удаляю если в тру это значение Код AS3:
|
Так получше будет.
Код AS3:
|
Цитата:
Код AS3:
|
я на это даже внимания не обратил))) А лучше я употребил про присвоение элемента свойству.
|
я бы все таки делал это статичной функцией , аля InGame.removeBullet(this);
|
Цитата:
Многие намеренно пишут явную проверку, чтобы проще было читать. Понятно, что в этом случае для программы разницы нет, но вот при чтении человеком, будет сразу понятно, что там булево значение, а не приведение к типу Boolean. Что бы ты подумал, если бы увидел вот такой кусок г-кода? (не обращая внимания на то, что тут названия не по конвенциям) Код AS3:
Цитата:
|
Код AS3:
splice при удалении с -1 удаляет последний элемент. Без if'а не обойтись. |
Цитата:
Добавлено через 3 часа 59 минут Цитата:
Код AS3:
|
| Часовой пояс GMT +4, время: 10:57. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.