Пример #1
0
void		init_menu(t_var **var)
{
  (*var)->pos_wall.x = 0;
  (*var)->pos_wall.y = 0;
  (*var)->pos_pai.x = 150;
  (*var)->pos_pai.y = 100;
  (*var)->pos_pvp.x = 150;
  (*var)->pos_pvp.y = 350;
  xSDL_BlitSurface((*var)->wall, NULL, (*var)->screen, &((*var)->pos_wall));
  if (SDL_SetColorKey((*var)->play_play, SDL_SRCCOLORKEY,
		      SDL_MapRGB((*var)->play_play->format, 0, 0, 255)) == -1)
    {
      my_puterror("Sdl Set Color Key Failed");
      exit(EXIT_FAILURE);
    }
  xSDL_BlitSurface((*var)->play_play, NULL, (*var)->screen, &((*var)->pos_pai));
  if (SDL_SetColorKey((*var)->play_cpu, SDL_SRCCOLORKEY,
		      SDL_MapRGB((*var)->play_cpu->format, 0, 0, 255)) == -1)
    {
      my_puterror("Sdl Set Color Key Failed");
      exit(EXIT_FAILURE);
    }
    xSDL_BlitSurface((*var)->play_cpu, NULL,
		     (*var)->screen, &((*var)->pos_pvp));
  xSDL_Flip((*var)->screen);
}
Пример #2
0
int		catch_event_pvp(t_match **match, t_var *var,
			    int in_prog, SDL_Event event)
{
  int		flag;

  flag = 0;
  xSDL_WaitEvent(&event);
  aff_p1_p2(who_play, var);
  if (event.type == SDL_QUIT)
    in_prog = 42;
  if (event.type == SDL_MOUSEBUTTONDOWN)
    if (event.button.button == SDL_BUTTON_LEFT)
      (*match) = catch_left_button(&event, (*match));
  if (event.type == SDL_KEYDOWN)
    {
      if (event.key.keysym.sym == SDLK_ESCAPE)
	in_prog = 42;
      else if (event.key.keysym.sym == SDLK_SPACE)
	check_space_pvp((*match), flag);
    }
  aff_match(var, (*match));
  if (win != 0)
    in_prog = aff_win_pvp((*var), in_prog, who_play);
  xSDL_Flip(var->screen);
  is_finished_pvp(*match);
  return (in_prog);
}
Пример #3
0
void		aff_player(t_board* board, t_perso* pl, int x, int y)
{
  int		pos;
  SDL_Rect	SDL_pos;

  SDL_pos.x = x * 30;
  SDL_pos.y = y * 30;
  aff_obj(Empty, SDL_pos, board->ecran);
  pos = x + (y * board->size) + y;
  if (board->map[pos] != Entry)
    aff_obj(board->map[pos], SDL_pos, board->ecran);
  SDL_pos.x = pl->x * 30;
  SDL_pos.y = pl->y * 30;
  xSDL_BlitSurface(pl->img[pl->way - Walk][pl->dir - LEFT], NULL, board->ecran, &SDL_pos);
  xSDL_Flip(board->ecran);
}
Пример #4
0
void		wait_event_pvp(t_var var)
{
  SDL_Event	event;
  t_match	*match;
  int		in_prog;

  match = NULL;
  in_prog = 1;
  match = init_match(match);
  SDL_EventState(SDL_MOUSEMOTION, SDL_IGNORE);
  aff_bwall(&var);
  aff_match(&var, match);
  xSDL_Flip(var.screen);
  while (in_prog == 1)
    in_prog = catch_event_pvp(&match, &var, in_prog, event);
  aff_match(&var, match);
  free_all(match, &var);
  SDL_Quit();
  exit(EXIT_SUCCESS);
}
Пример #5
0
int		aff_win_pvp(t_var var, int in_prog, int who_play)
{
  SDL_Event	event;
  SDL_Rect	pos;

  pos.x = 0;
  pos.y = 0;
  if (who_play != 0)
    xSDL_BlitSurface(var.winp2, NULL, var.screen, &pos);
  else
    xSDL_BlitSurface(var.winp1, NULL, var.screen, &pos);
  xSDL_Flip(var.screen);
  while (in_prog == 1)
    {
      xSDL_WaitEvent(&event);
      if (event.type == SDL_KEYDOWN)
	if (event.key.keysym.sym == SDLK_ESCAPE)
	  in_prog = 42;
    }
  return (42);
}
Пример #6
0
static void		aff_board(t_board *board)
{
  SDL_Surface		*ecran;
  SDL_Rect		position;
  int			i;

  i = 0;
  ecran = xSDL_SetVideoMode(board->size * 30 , board->h * 30,32, SDL_HWSURFACE | SDL_DOUBLEBUF);
  SDL_WM_SetCaption("Epikong", NULL);
  while (board->map[i])
    {
      while (board->map[i] && board->map[i] != '\n')
	{
	  position.x = (i % (board->size + 1)) * 30;
	  position.y = (i / (board->size + 1)) * 30;
	  aff_obj(board->map[i], position, ecran);
	  i++;
	}
      i++;
    }
  xSDL_Flip(ecran);
}