Двигаясь вплотную по стенке вызел баг.
|
Да у меня тоже самое. Пока добавил костыль - если возникнет баг то на секунду пропадет изображение, но игра не вылетет. Причина же где то в недрах алгоритмов расчета бросания лучей - они иногда странные координаты пересечения со стенами возвращают, возможно последтвия округления и преобразования из одного типа в другой. Сейчас буду целиком на float переводить все расчеты, потому что нет смысла на современных цп делать только целочисленные вычисления.
Кстати странная вещь - в mingw 4.7.2 неработают атрибуты:
struct A { char a; char b; ... } __attribute__( __aligned( 1 ) );
struct B { char a; char b; ... } __attribute__( __packed__ );
Эти структуры будут по прежнему выравниваться по 4 байта...
Пришлось сделать так:
#pragma pack( push, 1 )
struct C { char a; char b; ... };
#pragma pack( pop )
Хотя вроде раньше на более старых версиях mingw атрибуты вроде бы работали, я помню ими пользовался когда-то.