int X_cricle ,Y_cricle;
int X_cricle_his ,Y_cricle_his;
void APP_GAME(void)
{
unsigned char switch_value;
float pitch,roll,yaw; //欧拉角
float Jpitch,Jroll,Jyaw; //欧拉角//校准值
begin:
X_cricle = LCD_W/2;
Y_cricle = LCD_H/2;
LCD_Fill(0,0,LCD_W,LCD_H,BLACK); //
Draw_Circle( X_cricle, Y_cricle, 5, RED );
Draw_Circle( 2, 18, 5, RED );
Draw_Circle( 67, 1, 5, RED );
Draw_Circle( 23, 96, 5, RED );
Draw_Circle( 76, 24, 5, RED );
Draw_Circle( 19, 200, 5, RED );
Draw_Circle( 90, 210, 5, RED );
Draw_Circle( 100, 18, 5, RED );
//HAL_Delay(200); //等待
printf("游戏初始化\r\n");
/*重新对陀螺仪进行校准*/
while(1)
{
if( mpu_dmp_get_data( &pitch, &roll, &yaw ) == 0 )
{
printf("%.2f %.2f %.2f \r\n",pitch,roll,yaw);
Jpitch = pitch; //对获取到的角度进行校准
Jroll = roll;
Jyaw = yaw;
printf("游戏初始化完成\r\n");
break;
}
}
printf("进入了游戏\r\n");
/*LCD_W 135 LCD_H 240*/
while(1)
{
switch_value = Get_Key_value(0);
if( switch_value == Button_1_pressed || switch_value == Button_3_pressed ) goto begin;
if( switch_value == Button_2_pressed ) break;
if( mpu_dmp_get_data( &pitch, &roll, &yaw ) == 0 )
{
printf("%.2f %.2f %.2f \r\n",pitch,roll,yaw);
pitch = pitch - Jpitch ;
roll = roll - Jroll ;
yaw = yaw - Jyaw ;
}
Draw_Circle( X_cricle_his, Y_cricle_his, 10, BLACK );
if( pitch > 8 )
{
Y_cricle -- ;
}
if(pitch < -8 )
{
Y_cricle++ ;
}
if( roll > 8 )
{
X_cricle++ ;
}
if( roll < -8 )
{
X_cricle-- ;
}
if( X_cricle > LCD_W )
{
X_cricle = LCD_W;
}
if( X_cricle < 0 )
{
X_cricle = 0;
}
if( Y_cricle > LCD_H )
{
Y_cricle = LCD_H;
}
if( Y_cricle < 0 )
{
Y_cricle = 0;
}
Draw_Circle(X_cricle,Y_cricle,10,GREEN);
Delay_ms(5);
X_cricle_his = X_cricle;
Y_cricle_his = Y_cricle;
}//游戏主循环结束
printf("退出了游戏\r\n");
}