int main (int argc, char *argv[])/*função principal*/ { EVENTO tecla; COORD tam_ini, posi; argc=argc;/*corrigir warnings de argumentos nao ultilzados */ argv=argv;/*corrigir warnings de argumentos nao ultilzados */ tam_ini = tamanhoJanelaConsole();/*atribuição de procedimento*/ posi = getPosicaoJanela();/*atribuição de procedimento*/ do { tecla = Evento(); nome_console();/*chama procedimendo para mudar o nome do console*/ maximiza_console();/*chamada do procedimento para maximizar janela do console*/ velas();/*chama função para criar as velas*/ if (tecla.teclado.codigo_tecla == ESC)/*verifica ponto de parada do programa*/ { setPosicaoJanela(posi.X, posi.Y);/*coloca na posição inicial*/ setDimensaoJanela(tam_ini.X, tam_ini.Y);/*coloca no tamanho inicial*/ break; } }while(1);/*se verdade sai*/ return(0); }
/** chequear si hay eventos nuevos para un jugador */ Evento Modelo::actualizar_jugador(int s_id) { int tocado = this->tocar(s_id, this->tiros[s_id].t_id); if (this->hayEventos(s_id) > 0) { Evento retorno = this->eventos[s_id].front(); this->eventos[s_id].pop(); return retorno; } else { return Evento(s_id, -1, 0, 0, -tocado); } }
/* Se eliminan los eventos de la lista y se lo completa con los nuevos * Obtenidos por el teclado. */ int Controlador::cambiar(std::vector<Evento>* listaEventos) { listaEventos->clear(); SDL_Event event; SDL_PollEvent(&event); const Uint8 *state = SDL_GetKeyboardState(NULL); if (((event.key.keysym.sym == SDLK_KP_PLUS) || (event.key.keysym.sym ==SDLK_PLUS)) && !state[SDL_SCANCODE_KP_MINUS]){ Evento mas = Evento(5); listaEventos->push_back(mas); return CONTINUAR; } if (((event.key.keysym.sym == SDLK_KP_MINUS) || (event.key.keysym.sym ==SDLK_MINUS)) && !state[SDL_SCANCODE_KP_PLUS]){ Evento menos = Evento(6); listaEventos->push_back(menos); return CONTINUAR; } if (event.key.keysym.sym == SDLK_LEFT && (state[SDL_SCANCODE_LEFT])) { if (state[SDL_SCANCODE_RIGHT] && state[SDL_SCANCODE_UP]) { Evento der = Evento(2); Evento arriba = Evento(3); listaEventos->push_back(der); listaEventos->push_back(arriba); return CONTINUAR; } else if (state[SDL_SCANCODE_RIGHT]) { Evento der = Evento(2); listaEventos->push_back(der); return CONTINUAR; } else { Evento izq = Evento(1); listaEventos->push_back(izq); return CONTINUAR; } } else if (event.key.keysym.sym == SDLK_RIGHT && (state[SDL_SCANCODE_RIGHT])) { if (state[SDL_SCANCODE_LEFT] && state[SDL_SCANCODE_UP]) { Evento izq = Evento(1); Evento arriba = Evento(3); listaEventos->push_back(izq); listaEventos->push_back(arriba); return CONTINUAR; } else if (state[SDL_SCANCODE_LEFT]) { Evento izq = Evento(1); listaEventos->push_back(izq); return CONTINUAR; } else { Evento der = Evento(2); listaEventos->push_back(der); return CONTINUAR; } } else if (event.key.keysym.sym == SDLK_UP && (state[SDL_SCANCODE_UP])) { if (state[SDL_SCANCODE_LEFT] && state[SDL_SCANCODE_UP]){ Evento arriba = Evento(3); listaEventos->push_back(arriba); return CONTINUAR; } else if (state[SDL_SCANCODE_LEFT]) { Evento izq = Evento(1); Evento arriba = Evento(3); listaEventos->push_back(izq); listaEventos->push_back(arriba); return CONTINUAR; } else if (state[SDL_SCANCODE_RIGHT]) { Evento der = Evento(2); Evento arriba = Evento(3); listaEventos->push_back(der); listaEventos->push_back(arriba); return CONTINUAR; }else{ Evento arriba = Evento(3); listaEventos->push_back(arriba); return CONTINUAR; } } else if (event.key.keysym.sym == SDLK_r && (state[SDL_SCANCODE_R])) { Evento reset = Evento(4); listaEventos->push_back(reset); return REINICIAR; } if (state[SDL_SCANCODE_LEFT]){ Evento izq = Evento(1); listaEventos->push_back(izq); return CONTINUAR; } if (state[SDL_SCANCODE_RIGHT]){ Evento der = Evento(2); listaEventos->push_back(der); return CONTINUAR; } if (state[SDL_SCANCODE_KP_PLUS]){ Evento mas = Evento(5); listaEventos->push_back(mas); return CONTINUAR; } if (state[SDL_SCANCODE_KP_MINUS]){ Evento menos = Evento(6); listaEventos->push_back(menos); return CONTINUAR; } if (event.type == SDL_QUIT){ return FIN_DEL_JUEGO; } Evento nada= Evento(0); listaEventos->push_back(nada); return CONTINUAR; }