void SwitchMode() { FPGAState=CheckFPGAState(); if(FPGAState==FALSE) { SwitchMODEManual; ChangeRunMode(MODEManual); } else//FPGA模块正常情况下进行手自驾切换 { if(PWMIn[5]>0.5)//自驾 { AutoCount++; ManualCount=0; } else if(PWMIn[5]<-0.5)//手驾 { ManualCount++; AutoCount=0; } else { ManualCount=0; AutoCount=0; } if(AutoCount>5) { SwitchMODEAuto; if(RunState==MODEManual) { OnSwitchAuto=0; } ChangeRunMode(PreAutoMode); ManualCount=0; AutoCount=0; } if(ManualCount>5) { SwitchMODEManual; ChangeRunMode(MODEManual); ManualCount=0; AutoCount=0; } } }
void MyCharacter::OnEvent(const irr::SEvent & e) { //键盘事件 if (e.EventType == EET_KEY_INPUT_EVENT) { if ( //按X 切换 站立 攻击准备模式 if (e.KeyInput.Key == KEY_KEY_X && e.KeyInput.PressedDown==false) { ChangeState(); } //按R 切换跑步走路 模式 if (e.KeyInput.Key == KEY_KEY_R && e.KeyInput.PressedDown==false) { ChangeRunMode(); } //按空格,捡物品 if (e.KeyInput.Key == KEY_SPACE && e.KeyInput.PressedDown==false) { CollectDropItem(); } //按Q 使用包裹里的MP恢复药 if (e.KeyInput.Key == KEY_KEY_Q && e.KeyInput.PressedDown==false) { //请求使用装备包裹里的消耗品 property.cmd=CMD_C2S_Request_UsePackageHPItem; cnet->SendMsg((char*)&property,sizeof(RoleProperty)); } } }