C 字符自动移动isn';行不通
我试图让一个角色随机自动移动,并在墙壁上弹跳。理论上,我的代码应该可以工作,但是角色没有移动。我没有犯错误,也试着找出一个问题,但没有成功 我修复了声明和一些比较中的一些问题,但是我还没有发现另一个问题,那就是阻止代码运行。我在48x84 LCD屏幕上运行这个 主要功能并不精确,但当前运行的顺序是相同的C 字符自动移动isn';行不通,c,teensy,C,Teensy,我试图让一个角色随机自动移动,并在墙壁上弹跳。理论上,我的代码应该可以工作,但是角色没有移动。我没有犯错误,也试着找出一个问题,但没有成功 我修复了声明和一些比较中的一些问题,但是我还没有发现另一个问题,那就是阻止代码运行。我在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},
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();
}
}
我希望tom能够自动移动,跳出屏幕边界,并以随机方向移动,但目前tom根本不移动,但没有出现任何错误,其他游戏元素工作正常跳出检测应考虑移动方向,但它没有,目前,我为每个bounce语句添加了一个调用,以将其发送回t_设置程序以获得新的方向。我不太担心他撞到墙上的方向与撞到墙上的方向相同代码>->你放了分号,这就是为什么
main
根本不起作用的原因。@miradizeynalli那不是我真正的main,只是我在编写代码时犯的一个错误,这样人们就可以了解我在做什么。我的实际主要作品很好,因为计时器和玩家角色的动作和其他一些东西都很好。你正在开发Arduino IDE吗?如果是,您可以尝试使用Serial.print
s进行调试。我觉得,你的游戏结束后
从一开始就是1。