Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для мобильных телефонов > JAVA Micro Edition > Программирование

Программирование Вопросы связанные с программированием в JAVA

Ответ
 
Опции темы
Старый 29.09.2006, 18:48   #1
SubZer0
Администратор
 
Аватар для SubZer0
 
Регистрация: 03.09.2005
Сообщений: 2,408
Написано 301 полезных сообщений
(для 996 пользователей)
Радость Еще раз о чистке ресурсов

сижу вот тут кодю гаму и возникла такая трабла... (это типа как сказка начинается "жили были...")

немного о коде... есть у меня простой массив классов для хранения патронов... как только ктонить хочет стрельнуть, то массив прочесывается на наличие пустого класса и если найден пустой, то туда записывается инфа о пуле, там координаты, скорость, кто стрельнул, спрайт пули и т.п.

дело в том, что процедура проверки существования пули была заключена в проверке наличия спрайта, т.е. если спрайт не null, то пуля существует... а когда пуля помирает то я прсто записывал в спрайт null и думал, что все просто супер... но не тут-то было...

оказывается, что спрайт НЕ удаляется из переменной в момент занесения туда null, а удаляется он "попозже" (относительно попозже в зависимости от нагрузки проца, если проц свободен то сразу, а в условиях реалтайм приложения могет держаться до половины секунды) отдельным idle процессом отвечающим за чистку ресурсов (см. книгу по яве)...

таким образом получается что в дальнейшем выполнении программы встречаются условия типа если спрайт не null, то нарисовать его на экране... и круто получается, что в момент проверки условия спрайт еще существует, а в момент вывода на экран (спустя 2-3 команды) его ужо нету... и вся система виснет и не говорит почему...

возился я с этим гемороем часа 2... пока не перелопатил все 190 КБ кода...

вот посчу тут, чтоб никто не повторил моей ошибки!

__________________
Как минимум я помог многим (с)
(Offline)
 
Ответить с цитированием
Старый 30.09.2006, 11:10   #2
Piligrim
Оптимист
 
Регистрация: 07.01.2006
Сообщений: 961
Написано 105 полезных сообщений
(для 259 пользователей)
Re: Еще раз о чистке ресурсов

можно конечно, вставлять gc() принудительно.
А можно пользоваться вектором.
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Lib_resloader - Экономная загрузка ресурсов odd Библиотеки 17 19.05.2010 01:56
Организация загрузки ресурсов? snikers BlitzMax 8 29.10.2008 11:05
Скрытие ресурсов dector Blitz3D 24 10.08.2008 11:14
FPS Экономия ресурсов -=SCiP=- 3D-программирование 56 17.04.2008 12:40
Менеджер ресурсов dimanche13 BlitzMax 1 12.12.2007 14:11


Часовой пояс GMT +4, время: 07:12.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com