void android_main(struct android_app* state) { app_dummy(); state->userData = &app; // Prepare to monitor accelerometer app.sensorManager = ASensorManager_getInstance(); app.sensorEventQueue = ASensorManager_createEventQueue(app.sensorManager, state->looper, LOOPER_ID_USER, NULL, NULL); if (state->savedState != NULL) { // We are starting with a previous saved state; restore from it. app.state = *(AppState*)state->savedState; } if(gRoot == NULL) { gRoot = new Ogre::Root(); #ifdef OGRE_STATIC_LIB gStaticPluginLoader = new Ogre::StaticPluginLoader(); gStaticPluginLoader->load(); #endif gRoot->setRenderSystem(gRoot->getAvailableRenderers().at(0)); gRoot->initialise(false); } state->onAppCmd = &handleCmd; state->onInputEvent = &handleInput; int ident, events; struct android_poll_source* source; while (true) { while ((ident = ALooper_pollAll(0, NULL, &events, (void**)&source)) >= 0) { if (source != NULL) { source->process(state, source); } if (state->destroyRequested != 0) { return; } } if(gRenderWnd != NULL && gRenderWnd->isActive()) { gRenderWnd->windowMovedOrResized(); gRoot->renderOneFrame(); InitGameScene(); } } }
void CSceneManager::OnSelect(float dt) { static float timer = 0.f; static bool swch = true; static bool swch2 = true; if(m_pHge->Input_KeyDown(HGEK_LBUTTON)) swch2 = false; if(swch2) { if(swch) { timer += dt; if(timer > 1.0f) { timer = 1.f; swch = false; } }else { timer -= dt; if(timer < 0.0f) { timer = 0.f; swch = true; } } }else { if(swch) { timer += dt*15; if(timer > 1.0f) { timer = 1.f; swch = false; } }else { timer -= dt*15; if(timer < 0.0f) { timer = 0.f; swch = true; } } m_timer += dt; if(m_timer > 1.0f) { InitGameScene(); //m_pRs->Purge(1);//问题不明 } } int alpha = (int)(timer * 255); m_alpha = (int)(m_timer * 255); if(alpha < 0) alpha = 0; m_pSltSpr->SetColor(ARGB(alpha, 0xff, 0xff, 0xff)); }