Вторник, 26 Ноября 2024, 21:13

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Как удалить Объект в Java
VintoreZ92Дата: Понедельник, 04 Февраля 2013, 10:26 | Сообщение # 1
был не раз
Сейчас нет на сайте
Здраствуйте товарищи, передо мной стоит задача удалять нажатием мыши некоторые ненужные объекты... Каким образом можно добится? До сих пор у меня получается только делать объект невидимым, необходимо каким-то образом удалять его.
Red_SquirrelДата: Понедельник, 04 Февраля 2013, 11:48 | Сообщение # 2
участник
Сейчас нет на сайте
Это зависит от того, как ты эти объекты хранишь
FadeBakerДата: Среда, 06 Февраля 2013, 23:19 | Сообщение # 3
JavaSE Game Developer
Сейчас нет на сайте
Объект в Java удаляется автоматически, когда на этот объект нет ни одной ссылки.

Уроки по GM
Minecraft 2D на GM
— Мои проекты —
Blood Harvest [2D] — Original
Blood Harvest [2D]: Remastered Edition
Adventure Craft [2D] — Sandbox
Space Shock [2D] — Scroll Shooter
Intel® Core™ i5-3570K 3.40 GHz, 8 GB RAM, GeForce GTX 750 Ti, Monitor: LG 23EA63V-P.
Desert_HunterДата: Среда, 06 Февраля 2013, 23:37 | Сообщение # 4
постоянный участник
Сейчас нет на сайте
Цитата (Fade)
Объект в Java удаляется автоматически, когда на этот объект нет ни одной ссылки.

Ты вопрос то понял?)


Сообщение отредактировал Desert_Hunter - Среда, 06 Февраля 2013, 23:39
FadeBakerДата: Четверг, 07 Февраля 2013, 00:11 | Сообщение # 5
JavaSE Game Developer
Сейчас нет на сайте
Desert_Hunter, я прослоупочил, лол.
Ну тут все просто. Если объект находится в списке, то при нажатии на него просто удалять его из списка. Если же на него указывает ссылка, то ссылке присваивать null.


Уроки по GM
Minecraft 2D на GM
— Мои проекты —
Blood Harvest [2D] — Original
Blood Harvest [2D]: Remastered Edition
Adventure Craft [2D] — Sandbox
Space Shock [2D] — Scroll Shooter
Intel® Core™ i5-3570K 3.40 GHz, 8 GB RAM, GeForce GTX 750 Ti, Monitor: LG 23EA63V-P.
waweДата: Пятница, 15 Февраля 2013, 14:34 | Сообщение # 6
был не раз
Сейчас нет на сайте
Если у тебя объект в списке ArrayList<>;
то ты можешь удалить его с помощью метода remove(номер объекта);
Вот пример:
List<Object> object = new ArrayList<Object>();

for (int a = 0; a < object.size(); a++) {
object.remove(a);
}

метод size() подсчитывает сколько объектов в списке и этот пример удаляет все объекты, которые находятся в списке.

можно просто найти необходимый объект, который тебе нужно удалить.
Например:

object.remove(7);

объект под номером 7 удалится.

Но если ты попробуешь еще раз удалить объект под номером 7, то компилятор сообщит об ошибке, что объект удалить невозможно, потому-что его не существует.
Надеюсь я помог.


Сообщение отредактировал wawe - Пятница, 15 Февраля 2013, 20:21
FadeBakerДата: Суббота, 16 Февраля 2013, 18:17 | Сообщение # 7
JavaSE Game Developer
Сейчас нет на сайте
Цитата (wawe)
for (int a = 0; a < object.size(); a++) {
object.remove(a);
}

Бред. Для того, чтобы удалить все объекты из коллекции/очистить коллекцию, достаточно вызвать у нее метод clear().



Уроки по GM
Minecraft 2D на GM
— Мои проекты —
Blood Harvest [2D] — Original
Blood Harvest [2D]: Remastered Edition
Adventure Craft [2D] — Sandbox
Space Shock [2D] — Scroll Shooter
Intel® Core™ i5-3570K 3.40 GHz, 8 GB RAM, GeForce GTX 750 Ti, Monitor: LG 23EA63V-P.
amageДата: Понедельник, 18 Февраля 2013, 18:29 | Сообщение # 8
уже был
Сейчас нет на сайте
Можно еще явно вызвать сборщик мусора System.gc()

http://gdforum.ru - Форум про разработку компьютерных игр
NancyWithoutSidДата: Суббота, 03 Августа 2013, 20:06 | Сообщение # 9
был не раз
Сейчас нет на сайте
Цитата (Fade)
for (int a = 0; a < object.size(); a++) {
object.remove(a);
}

ConcurrentModificationException получите
Цитата (wawe)
for (int i = 0; i < entities.size(); i++) {
    Entity e = entities.get(i);
    if (e.destroyed) entities.remove(i--);
}

И вы тоже. Но вам еще design error. За метод, который "постоянно вызывается"
Цитата (Fade)
Можно еще явно вызвать сборщик мусора System.gc()

явный вызов сборщика мусор приводит к явным тормозам. Не трогайте его без надобности пожалуйста happy

Цитата (wawe)
JavaSE Game Developer

really?
Всем добра smile


Если вы считаете, что женщина не умеет программировать, то вам стоит попробовать JProfiler или valgrind...
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг