Я делаю 3д игру и использую для этого метод ray-casting вроде бы у меня всё работает прекрасно кроме самой функции cast ray:
sf::Color cast_ray(float x, float y, float angle, int max_dist) {
float x_pos = x;
float y_pos = y;
float x_step = sin(angle);
float y_step = cos(angle);
for (int i = 0; i < max_dist; i++) {
x_pos += x_step;
y_pos += y_step;
int x_ = x_pos / x_step;
int y_ = y_pos / y_step;
printf("%i %i\n", x_, y_);
if (x_>-1 && x_ < 10 && y_>-1 && y_ < 10) {
if (map[x_][y_] == 1) {
return sf::Color(255, 255, 255);
}
}
}
return sf::Color(0, 0, 0, 0);
}
чуть не забыл сказать что я использую sfml и ещё есть очень важный момент, если вы смотрите на функцию и видите что она нормальная, уведомите пожалуйста меня об этом, я мог ошибиться на счёт того, где происходит проблема.