void OnDrawFrame() { float dt=NowMs()-savedTime; gameState.flappyBird->update(dt); bool needResetLevel; for(List<Wall>::Node *node = gameState.wallsList.begin; node;) { Wall *wall = node->obj; wall->update(dt, needResetLevel); List<Wall>::Node *next_node = node->next; if(wall->x + wall->w < 0.0f) { delete wall; gameState.wallsList.remove(node); } node = next_node; } if(needResetLevel) gameState.resetLevel(); gameState.idleTime = gameState.idleTime - dt; if(gameState.idleTime <= 0) { gameState.idleTime = 2000.f + ((rand()%1000)*0.001f) * 1000.f; Wall *wall = new Wall; wall->x = gameState.screenWidth / gameState.scale; wall->y = 0.0f; wall->w = 40.0f + ((rand()%1000)*0.001f) * 20.0f; wall->h = 100.0f + ((rand()%1000)*0.001f) * 500.0f; if(gameState.side) { wall->y = 1000.f - wall->h; } gameState.side = !gameState.side; gameState.wallsList.add(wall); } savedTime=NowMs(); glClear(GL_COLOR_BUFFER_BIT); gameState.flappyBird->draw(); for(List<Wall>::Node *node = gameState.wallsList.begin; node; node = node->next) { Wall *wall = node->obj; wall->draw(); } }
void OnSurfaceCreated() { gameState.flappyBird = new FlappyBird; gameState.idleTime = 0.0f; glClearColor(1.0f, 1.0f, 1.0f, 0.0f); glEnable(GL_TEXTURE_2D); glActiveTexture(GL_TEXTURE0); glEnable(GL_BLEND); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); savedTime=NowMs(); }
TestPerfomence::TestPerfomence(int size) { startMs_ = NowMs(); fprintf(stderr, "\033[0;32m[ RUN ] ==== start to run %lu cases.\n", size); }
TestPerfomence::~TestPerfomence() { long endMs = NowMs(); fprintf(stderr, "\033[0;32m[ RUN ] ==== start at %lu, stop at %lu, cost:[%lu]\n", startMs_, endMs, endMs - startMs_); }
TestPerfomence::TestPerfomence() { startMs_ = NowMs(); }