キャラクターをランダムに自動的に移動させ、壁を跳ねさせようとしています。理論的には、私が持っているコードは機能するはずですが、キャラクターは動いていません。エラーは発生せず、問題を見つけようとしましたが、不足しています。
宣言といくつかの比較に関するいくつかの問題を修正しましたが、このコードの実行を妨げている別の問題を見つけることができませんでした。これを 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();
}
}
トムは自動的に移動し、画面の境界から跳ね返り、ランダムな方向に移動できると期待していますが、現在、トムはまったく移動しませんが、エラーは表示されず、他のすべてのゲーム要素は正常に機能します