сижу вот тут кодю гаму и возникла такая трабла... (это типа как сказка начинается "жили были...")
немного о коде... есть у меня простой массив классов для хранения патронов... как только ктонить хочет стрельнуть, то массив прочесывается на наличие пустого класса и если найден пустой, то туда записывается инфа о пуле, там координаты, скорость, кто стрельнул, спрайт пули и т.п.
дело в том, что процедура проверки существования пули была заключена в проверке наличия спрайта, т.е. если спрайт не null, то пуля существует... а когда пуля помирает то я прсто записывал в спрайт null и думал, что все просто супер... но не тут-то было...
оказывается, что спрайт НЕ удаляется из переменной в момент занесения туда null, а удаляется он "попозже" (относительно попозже в зависимости от нагрузки проца, если проц свободен то сразу, а в условиях реалтайм приложения могет держаться до половины секунды) отдельным idle процессом отвечающим за чистку ресурсов (см. книгу по яве)...
таким образом получается что в дальнейшем выполнении программы встречаются условия типа если спрайт не null, то нарисовать его на экране... и круто получается, что в момент проверки условия спрайт еще существует, а в момент вывода на экран (спустя 2-3 команды) его ужо нету... и вся система виснет и не говорит почему...
возился я с этим гемороем часа 2... пока не перелопатил все 190 КБ кода...
вот посчу тут, чтоб никто не повторил моей ошибки!