Example #1
0
static void draw_platforms(SDL_Renderer *r, json_t const *ps, tile const *t, SDL_Rect const *off)
{
	int i;
	json_t *m;
	json_array_foreach(ps, i, m) {
		SDL_Rect p = { x: json_integer_value(json_array_get(m, 0)) - off->x,
		               y: json_integer_value(json_array_get(m, 1)) - off->y,
			       w: json_integer_value(json_array_get(m, 2)),
			       h: 0 };

		draw_platform(r, &p, t);
	}
Example #2
0
int	launch_the_game(t_opengl *opengl, t_camera *camera)
{
  int	i = 0;
  int	continuer = 1;
  t_coord	player = {0, 0, 0, 0, UP};
  static t_ptr_key	ptr[9] =
    {{SDLK_DOWN, &modif_cam_z}, {SDLK_UP, &modif_cam_z},
     {SDLK_LEFT, &modif_cam_x}, {SDLK_RIGHT, &modif_cam_x},
     {280, &modif_cam_y}, {281, &modif_cam_y},
     {Q, &move}, {D, &move},
     {0, NULL}};

  while (continuer == 1) {
    SDL_PollEvent(&opengl->event);
    SDL_Delay(10);
    if (opengl->event.type == SDL_QUIT)
      exit(SUCCESS);
    if (opengl->event.type == SDL_KEYDOWN) {
      i = 0;
      while (i < 11) {
	if (opengl->event.key.keysym.sym == ptr[i].keycode) {
	  if ((i % 2) == 0)
	    ptr[i].ptr_keycode(camera, &player, 0);
	  else if ((i % 2) == 1)
	    ptr[i].ptr_keycode(camera, &player, 1);
	}
	i = i + 1;
      }
    }
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();
    gluLookAt(camera->x, camera->y, camera->z,
	      camera->eye_x, camera->eye_y, camera->eye_z, 0, 0, 1);
    draw_platform();
    draw_wall(&player);
    SDL_GL_SwapBuffers();
    glFlush();
  }
  return (SUCCESS);
}