boulat5280
@boulat5280
linux

Исправить функцию броска луча?

Я делаю 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 и ещё есть очень важный момент, если вы смотрите на функцию и видите что она нормальная, уведомите пожалуйста меня об этом, я мог ошибиться на счёт того, где происходит проблема.
  • Вопрос задан
  • 190 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы