Новинки Java 2016!
Видео Клубничка для CCBot/2.0
Разрешите расслабиться?
Писал я как-то игру — чисто для души, проект некоммерческий. Так как в программе широко использовался объектно-ориентированный подход, то классов было море. Программа писалась уже довольно давно, и вне Студии я её не запускал, пока не надумал скомпилить и протестить релизную версию. Игра загрузилась, отрисовала карту, главного героя... который стоял, как истукан, решительно отказываясь перебирать ножками и идти, куда сказали. Подивившись, я запустил Студию, открыл проект и нажал F5 — игра запустилась, и герой бодро побежал к намеченной точке! Повторная проверка показала странную закономерность: герой соглашался выполнять указы только под бдительным надзором дебаггера Студии, вне родных стен которой он просто тихо стоял на месте.

Причина привязанности героя к дебаггеру крылась, впрочем, во вполне банальной ошибке. В конструкторе класса героя флажок Idle не был инициализирован значением false, и каждый раз, когда игра запускалась в дебаге, звёзды так удачно складывались, что на область памяти, где лежала эта переменная, приходилось нулевое значение. Когда же игру запускали в «полевых условиях», адреса менялись, и на флажок Idle попадал какой-то ненулевой мусор, который герой интерпретировал как true, то есть указание ничего не делать.
< предыдущая история | следующая история >
IT happens
На главную
0,0066 сек.
HTML | XHTML
© FaceWAP.Net 2016
WapLog