Тема: raycasting
Показать сообщение отдельно
Старый 01.10.2013, 20:48   #15
Samodelkin
Мастер
 
Регистрация: 12.01.2009
Сообщений: 979
Написано 388 полезных сообщений
(для 631 пользователей)
Ответ: raycasting

Двигаясь вплотную по стенке вызел баг.
Да у меня тоже самое. Пока добавил костыль - если возникнет баг то на секунду пропадет изображение, но игра не вылетет. Причина же где то в недрах алгоритмов расчета бросания лучей - они иногда странные координаты пересечения со стенами возвращают, возможно последтвия округления и преобразования из одного типа в другой. Сейчас буду целиком на 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 атрибуты вроде бы работали, я помню ими пользовался когда-то.
(Offline)
 
Ответить с цитированием