//屏触响应 //int32 TestBox2DLite_MouseEvent( E_Mex_MouseEvent eEvent, int16 iPosX, int16 iPosY ) iS32 TestBox2DLite_MouseEvent(i51InputStruct InputData) { iU16 uWidth=240, uHeight=320; if( i51AdeMmiGetScreenScale ( &uWidth , &uHeight ) == 0 ) return iFALSE; if(InputData.type==i51_PEN_INPUT&&InputData.u.pen.type==i51_PEN_UP) { iU16 PenX = InputData.u.pen.x; iU16 PenY = InputData.u.pen.y; if(PenY<uHeight/4) { if(PenX<uWidth/3) InitDemo(1); else if( PenX<uWidth*2/3) InitDemo(2); else InitDemo(3); } else if(PenY<uHeight*2/4) { if(PenX<uWidth/3) InitDemo(4); else if( PenX<uWidth*2/3) InitDemo(5); else InitDemo(6); } else if(PenY<uHeight*3/4) { if(PenX<uWidth/3) InitDemo(7); else if( PenX<uWidth*2/3) InitDemo(8); else InitDemo(9); } else { LaunchBomb(); } } return 1; }
void Test::CompleteBombSpawn(const b2Vec2& p){ if (m_bombSpawning == false){ return; } const float multiplier = 30.0f; b2Vec2 vel = m_bombSpawnPoint - p; vel *= multiplier; LaunchBomb(m_bombSpawnPoint,vel); m_bombSpawning = false; }
//按键响应 //int32 TestBox2DLite_KeyEvent(E_Mex_KeyEvent keyEvent, E_Mex_KeyCode keyCode) iS32 TestBox2DLite_KeyEvent(void) { i51KEYS keyCode; i51InputStruct InputData; i51KitKeyInputQueueOut(KeyQueue, &InputData); if(InputData.type==i51_KEY_INPUT&&InputData.u.key.type==i51_KEY_UP) { i51KEYS keyCode = InputData.u.key.value; switch ( keyCode ) { case i51_KEY_NUM0: InitDemo(0); break; case i51_KEY_NUM1: InitDemo(1); break; case i51_KEY_NUM2: InitDemo(2); break; case i51_KEY_NUM3: InitDemo(3); break; case i51_KEY_NUM4: InitDemo(4); break; case i51_KEY_NUM5: InitDemo(5); break; case i51_KEY_NUM6: InitDemo(6); break; case i51_KEY_NUM7: InitDemo(7); break; case i51_KEY_NUM8: InitDemo(8); break; case i51_KEY_NUM9: InitDemo(9); break; case i51_KEY_ENTER: LaunchBomb(); break; } } TestBox2DLite_MouseEvent(InputData); return 1; }
void Test::LaunchBomb() { b2Vec2 p(RandomFloat(-15.0f, 15.0f), 30.0f); b2Vec2 v = -5.0f * p; LaunchBomb(p, v); }
void Keyboard(unsigned char key, int x, int y) { switch (key) { case 27: exit(0); break; case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': { InitDemo(key - '1'); } break; case 'b': { bruteForceHitCalc = !bruteForceHitCalc; } break; case 'p': { if(dt != 0.0f){ dt = 0.0f; } else { dt = 1.0f / 60.0f;} } break; case ' ': { LaunchBomb(); } break; case 'u': { if(viewNode->parent()){ viewNode = viewNode->parent(); } } break; case 'd': { viewNode->children(true); if(viewNode->child(AutoMatic::QuadtreeNode::pXpY)) { viewNode = viewNode->child(AutoMatic::QuadtreeNode::pXpY); child = 0; } } break; case 'n': { child++; if(child >= 4){ child = 0; } if(viewNode->parent()) { viewNode = viewNode->parent()->child((AutoMatic::QuadtreeNode::ChildId)child); } } break; } }