0

我试图让角色随机自动移动并反弹墙壁。从理论上讲,我拥有的代码应该可以工作,但是角色并没有移动。我没有收到任何错误,并试图找到一个问题,但做不到。

我修复了声明和一些比较的几个问题,但是我无法找到另一个阻止此代码运行的问题。我在 48x84 LCD 屏幕上运行它。

主要功能不准确,但当前运行的顺序是相同的

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();
    }
}

我希望汤姆能够自动移动并从屏幕边界反弹并沿随机方向移动,但目前汤姆根本没有移动,但没有出现错误,其他所有游戏元素都可以正常工作

4

0 回答 0