//public void iniciarLoop() //{ // new Thread(loop, "Main loop").start(); //} #endregion #region Setup public void Setup(int velocidade) { //Criamos a estratégia de double buffering //TODO: createBufferStrategy(2); Random random = new Random(); veiculos = new Veiculo[NRO_VEICULOS]; for (int i = 0; i < NRO_VEICULOS; i++) { if (i < NRO_VEICULOS / 4) veiculos[i] = new Onibus(velocidade); else if (i >= NRO_VEICULOS / 4 && i < NRO_VEICULOS / 2) veiculos[i] = new Carro(velocidade); else if (i >= NRO_VEICULOS / 2 && i < NRO_VEICULOS) veiculos[i] = new Moto(velocidade); } for (int i = 0; i < NRO_VEICULOS; i++) { int j = random.Next(veiculos.Length); Veiculo temp = veiculos[i]; veiculos[i] = veiculos[j]; veiculos[j] = temp; } pista1 = new Boolean[TAM_PISTA]; pista2 = new Boolean[TAM_PISTA]; pista3 = new Boolean[TAM_PISTA]; veiculoNoMapa = new Boolean[NRO_VEICULOS]; for (int i = 0; i < TAM_PISTA; i++) { pista1[i] = false; pista2[i] = false; pista3[i] = false; } for (int i = 0; i < NRO_VEICULOS; i++) { veiculoNoMapa[i] = false; } Mapa = new Mapa(); Sapo.ResetaPosicao(); }
public Jogo() // : base("Frogger") { /* this.addKeyListener(this); setDefaultCloseOperation(EXIT_ON_CLOSE); setBounds(100, 100, 378, 357); setResizable(false); getContentPane().setLayout(null); setIgnoreRepaint(true); setFocusable(true); */ Sapo = new Sapo(); //addWindowListener(new WindowAdapter() // { // @Override // public void windowClosing(WindowEvent e) // { // //Se apertar o x, paramos o loop. // loop.stop(); // } //}); }
public void processLogics() { // TODO Auto-generated method stub //Calcula o tempo entre dois updates long time = ControleTempo.CurrentTimeMillis() - previous; if (Sapo.Vidas == 0) Environment.Exit(0); if (Sapo.Ymatriz == 0) loop.nextLevel(); for (int i = 0; i < TAM_PISTA; i++) { pista1[i] = false; pista2[i] = false; pista3[i] = false; } for (int i = 0; i < NRO_VEICULOS; i++) { if (veiculoNoMapa[i]) { if (veiculos[i].Visible) { for (int j = veiculos[i].Xmatriz; j < veiculos[i].NroBlocosOcupa + veiculos[i].Xmatriz; j++) { if (Sapo.Ymatriz == veiculos[i].Ymatriz && Sapo.Xmatriz == j) { Sapo.ResetaPosicao(); Sapo.PerdeVida(); } } veiculos[i].update(time); switch (veiculos[i].Pista) { case 1: for (int j = veiculos[i].Xmatriz; j < veiculos[i].Xmatriz + veiculos[i].NroBlocosOcupa; j++) pista1[j + 3] = true; break; case 2: for (int j = veiculos[i].Xmatriz; j < veiculos[i].Xmatriz + veiculos[i].NroBlocosOcupa; j++) pista2[j + 3] = true; break; case 3: for (int j = veiculos[i].Xmatriz; j < veiculos[i].Xmatriz + veiculos[i].NroBlocosOcupa; j++) pista3[j + 3] = true; break; } } else { veiculoNoMapa[i] = false; veiculos[i].resetPosicao(); } } } int soma1 = 0; int soma2 = 0; int soma3 = 0; for (int i = 0; i < TAM_PISTA; i++) { if (pista1[i]) soma1++; if (pista2[i]) soma2++; if (pista3[i]) soma3++; } if (soma1 < 0.3 * TAM_PISTA) tentaColocarVeiculo(pista1, 1); if (soma2 < 0.3 * TAM_PISTA) tentaColocarVeiculo(pista2, 2); if (soma3 < 0.3 * TAM_PISTA) tentaColocarVeiculo(pista3, 3); //Grava o tempo na saída do método previous = ControleTempo.CurrentTimeMillis(); }