|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Удаление конкретного объекта из массива таких же объектов
Всем привет. Решил тут пофанить, давненько игрушки не делал, а то все работа и работа. Так вот, застрял сейчас на том, что не могу сообразить, как организовать контроллер пуль. Он содержит в себе создание пули, помещение ее в массив, а затем удаление пули и отписки ее от всех событий - то есть, банальные действия.
Так в чем проблема: я не знаю, как потом выкинуть именно эту пулю из массива всех пуль. Как делаю: создаю пулю, помещаю ее в массив методом push, а он возвращает длину массива, насколько я понял. Эту длину массива можно принять за индекс пули в массиве минус 1. Его-то я и загоняю в публичное свойство пули - id. Вроде все логично. Затем удаляю пулю и делаю splice у массива - пуля удаляется, но все сдвигается, чтобы не было пустых ячеек. То есть, id у других пуль уже другой должен быть. Прошу помочь с правильным алгоритмом сиих действий, можно даже с примерами. Ах ты, опечатку в названии сделал...
__________________
тут я Последний раз редактировалось КорДум; 17.10.2010 в 14:29. |
|
|||||
Есть пуля, она создается и запускается. Настает момент когда ее нужно удалить - мы ее удаляем, при чем пуля удаляется сама или отсылает событие, что ее нужно удалить. Т.е. не нужны ни id, ни массив. Какая у них вообще по задумке была цель?
__________________
Ну все, теперь Забава м-о-я. Гы-гы, а корабль мой! |
|
|||||
Регистрация: Mar 2007
Сообщений: 545
|
У пули есть метод апдейт. Вызывается из главного класса игры, чтобы не дергать ентерфрейм для каждого объекта (пробегаем по массиву объектов)
На методе апдейт, меняем положение пули, состояние. Если надо делаем статус пора уничтожать. Также есть проверка, если статус уничтожить, то шлем событие. |
|
|||||
andrew911, это вообще другой подход. И как тут выкидывать пулю из массива?
Цитата:
__________________
тут я |
|
|||||
Регистрация: Jan 2009
Адрес: Петерсбург
Сообщений: 1,882
|
А оператор строго равенства не подойдет?
Последний раз редактировалось Bgg; 17.10.2010 в 15:17. |
|
|||||
Bgg, так-так-так. А вот про замену на null и очистку от этих нулей я и не подумал. Да еще и вектором их организовать. Оттого скорость обработки будет выше и менее затратно для процессора. Спасибо.
Метод очистки можно даже запихать в класс-контроллер пуль, так будет логичнее.
__________________
тут я Последний раз редактировалось КорДум; 17.10.2010 в 15:21. |
Часовой пояс GMT +4, время: 23:24. |
|
« Предыдущая тема | Следующая тема » |
|
|