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

Добавил редактор (скорей это чит) - теперь можно добавлять/удалять блоки (из которых состоят стены) прямо из игры.
Если смотреть на карту сверху:
U - верхний левый;
I - верхний;
O - верхний правый;
L - справа;
> - нижний правый;
< - нижний;
M - нижний левый;
J - слева;
Угол поворота самой камеры никак не влияет на это.

Перенес управление со стрелок на WSAD. Чуть попозже может быть добавлю мышь и стрейфы.

Карту вынес в отдельный класс (maze.hpp, maze.cpp).

Сделал каркас класса Player, но пока еще не заполнил его кодом.

Убрал переопределия целочисленных типов - они там не нужны. Теперь в коде стандартные типы из cstdint.

Добавил многопоточность. Она работает на уровне кастинга лучей (тест на пересечение с объектами) и на уровне заполнения фреймбуфера (софтварного), буфер делится на области, с каждой работает отдельный поток.
В C++11 есть удобный класс std::thread, но в mingw 4.7.2 он не работает (в mingw вообще я смотрю много проблем). Boost решил не использовать - он слишком большой для такого маленького проекта (нарушается равновесие дзен). Поэтому воспользовался WinAPI CreateThread: там всего около 20 строчек кода, которые можно макросами обвести для компиляции в другой ос, и использовать уже там например std::thread.

Ссылки все в первом посте.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
mr.DIMAS (29.09.2013)