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); }
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); }
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); }
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); }
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); }
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); }