示例#1
0
文件: naev.c 项目: ekrumme/naev
/**
 * @brief Actually runs the updates
 *
 *    @param[in] dt Current delta tick.
 */
static void update_routine( double dt )
{
   space_update(dt);
   weapons_update(dt);
   spfx_update(dt);
   pilots_update(dt);
   missions_update(dt);
   events_update(dt);
}
示例#2
0
int main(void){
  
  space = space_init(SCREEN_W, SCREEN_H);

  SDL_Event evt; 

  if (SDL_Init(SDL_INIT_VIDEO) != 0) {
    return -1;
  }

  screen = SDL_SetVideoMode(
    SCREEN_W, 
    SCREEN_H, 
    24, SDL_HWSURFACE | SDL_DOUBLEBUF);

  if (screen == NULL) {
    return -1;
  }

  while(1) {
    while(SDL_PollEvent(&evt)) {
      if(evt.type == SDL_QUIT) {
        goto finish;
      }
      if (evt.type == SDL_KEYUP && evt.key.keysym.sym == SDLK_ESCAPE) {
        goto finish;
      }

      if (evt.type == SDL_MOUSEMOTION    ) space_mouse_move(space, evt.motion.x, evt.motion.y);
      if (evt.type == SDL_MOUSEBUTTONDOWN) space_mouse_down(space);
      if (evt.type == SDL_MOUSEBUTTONUP  ) space_mouse_up  (space);
    }


    SDL_LockSurface(screen);
    SDL_FillRect(screen, NULL, 0x000080); 
    space_update(space, 0.02);

    DrawImpl(space);

    SDL_FreeSurface(screen);
    SDL_Flip(screen);
  }
  
finish:
  
  space_destroy(space);  
  SDL_FreeSurface(screen);
  SDL_Quit();

  return 0;
}
示例#3
0
文件: space.c 项目: Mulambev/Midterm
void space_do_step(Space *space)
{
	GList *it;
    if (!space)return;
    if (space->stepstaken == space->steps)
    {
        space->stepstaken = 0;
        
        for (it = space->bodylist;it != NULL;it = g_list_next(it))
        {
            if (!it->data)continue;
            body_reset((Body *)it->data);
        }
    }
    //run one iteration of space update
    space_update(space);
    //for each body, update it a little
    space->stepstaken++;
}