Автоматическое движение для персонажа не работает - PullRequest
0 голосов
/ 21 октября 2019

Я пытаюсь заставить персонажа перемещаться автоматически наугад и отскакивать от стен. Теоретически код, который у меня есть, должен работать, но персонаж просто не двигается. Я не получаю ошибок и пытаюсь найти проблему, но не могу.

Я исправил пару проблем с объявлениями и некоторыми сравнениями, однако я не смог найти другую проблему, которая останавливает этот код изБег. Я запускаю это на жидкокристаллическом экране 48x84.

Основная функция не точна, но порядок выполнения вещей в настоящее время тот же

int t_xy[27][2] = { {0,0}, {4,0}, {0,1}, {1,1}, {3,1}, {4,1}, {0,2}, {1,2}, {2,2}, {3,2}, {4,2}, {0,3}, {2,3}, {4,3}, {0,4}, {1,4}, {3,4}, {4,4}, {0,5}, {1,5}, {2,5}, {3,5}, {4,5}, {1,6}, {2,6}, {3,6} }; //27 pixels in bitmap

//Tom's positon
double t_x = LCD_X - 5, t_y = LCD_Y - 9,  t_dx, t_dy;

void t_setup() {
    double gait = 0.3;
    double t_dir = rand() * 3.14 * 2 / RAND_MAX; // random direction
    t_dx = gait * cos(t_dir);
    t_dy = gait * sin(t_dir);
}

void t_move() {
    int new_x = round(t_x + t_dx);
    int new_y = round(t_y + t_dy);
    int bounced = 0;
        if (new_x == 0 || new_x == LCD_X - 5) {
            t_dx = -t_dx;
            bounced = 1;

        }
        if (new_y == 8 || new_y == LCD_Y - 7) {
            t_dy = -t_dy;
            bounced = 1;
        }
        if (!(bounced == 1)) {
            t_x += t_dx;
            t_y += t_dy;
        }

void main()
    t_setup();
    while (!(game_over == 1))
    {
        t_move();
    }
}

Я ожидаю, что Том сможетперемещаться автоматически и отскакивать от границ экрана и двигаться в случайных направлениях, но в настоящее время Том вообще не двигается, но никаких ошибок не появляется, и любой другой элемент игры работает нормально

...