示例#1
0
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();
  }
}
示例#2
0
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();
}
示例#3
0
 TestPerfomence::TestPerfomence(int size) {
     startMs_ = NowMs();
     fprintf(stderr,
         "\033[0;32m[ RUN      ] ==== start to run %lu cases.\n",
         size);
 }
示例#4
0
 TestPerfomence::~TestPerfomence() {
     long endMs = NowMs();
     fprintf(stderr,
         "\033[0;32m[ RUN      ] ==== start at %lu, stop at %lu, cost:[%lu]\n",
         startMs_, endMs, endMs - startMs_);
 }
示例#5
0
 TestPerfomence::TestPerfomence() {
     startMs_ = NowMs();
 }