private void Odczytaj() { if (Console.KeyAvailable) { key = Console.ReadKey(); isKeyPressed = true; } else { isKeyPressed = false; } if (key.Key == ConsoleKey.LeftArrow && isKeyPressed && Kontakt.KontaktStatekObcy(listaObcych, statek.x - 1, statek.y)) { Ruch.RuchLewo(statek); } else if (key.Key == ConsoleKey.RightArrow && isKeyPressed && Kontakt.KontaktStatekObcy(listaObcych, statek.x + 1, statek.y)) { Ruch.RuchPrawo(statek, xRozmiar); } else if (key.Key == ConsoleKey.UpArrow && isKeyPressed && Kontakt.KontaktStatekObcy(listaObcych, statek.x, statek.y - 1)) { Ruch.RuchGora(statek); } else if (key.Key == ConsoleKey.DownArrow && isKeyPressed && Kontakt.KontaktStatekObcy(listaObcych, statek.x, statek.y - 1)) { Ruch.RuchDol(statek, yRozmiar); } else if (key.Key == ConsoleKey.Spacebar && isKeyPressed) { if (statek.y == 4) { return; } pociskiGracza.Add(new PociskStatek(statek.x, statek.y)); //PociskStatek(statek.x,statek.y); pociskiGracza[pociskiGracza.Count - 1].WyswietlObiekt(); } }
public void Update() { Timer.Start(); while (true) { time = (int)Timer.ElapsedMilliseconds; if (time > tempo) { time = 0; Timer.Restart(); //Rozpatrzenie lotu pociskowGracza if (pociskiGracza.Count > 0) { for (int i = 0; i < pociskiGracza.Count; i++) //rozbic na funkcje { if (pociskiGracza[i].y == statek.y && pociskiGracza[i].x == statek.x) //kontakt ze statkiem == boom { zycie--; if (zycie <= 0)//koniec gry i ponow gre { PasekStatystyk.Wyswietl(zycie, punkty); return; } PasekStatystyk.Wyswietl(zycie, punkty); pociskiGracza[i].WymarzObiekt(); pociskiGracza.RemoveAt(i); statek.WyswietlObiekt(); } else if (pociskiGracza[i].y > 4) { pociskiGracza[i].Lot(); //lot pocisku } else if (pociskiGracza[i].y == 4) //jezeli wyleca z planszy to znikaja { pociskiGracza[i].WymarzObiekt(); pociskiGracza.RemoveAt(i); } punkty = Kontakt.KontaktPociskObcy(pociskiGracza, listaObcych, punkty); PasekStatystyk.Wyswietl(zycie, punkty); //obcy moze zostac trafiony i znika jezeli zycie=0 w pociskach } } //Rozpatrzenie ruchu Obcych if (listaObcych.Count > 0) { for (int i = 0; i < listaObcych.Count; i++) { listaObcych[i].WyswietlObiekt(); int rnd = kierunek.Next(0, 1249);//zrobic metode if (rnd > 0 && rnd < 249) { Ruch.RuchLewo(listaObcych[i]); } if (rnd > 250 && rnd < 499) { Ruch.RuchPrawo(listaObcych[i], xRozmiar); } if (rnd > 500 && rnd < 749) { Ruch.RuchGora(listaObcych[i]); } if (rnd > 750 && rnd < 999) { Ruch.RuchDol(listaObcych[i], yRozmiar); } if (rnd > 1000 && rnd < 1249) { if (listaObcych[i].y == yRozmiar + 1) { return; } pociskiObcych.Add(new PociskObcy(listaObcych[i].x, listaObcych[i].y)); pociskiObcych[pociskiObcych.Count - 1].WyswietlObiekt(); } } } if (pociskiObcych.Count > 0) { for (int i = 0; i < pociskiObcych.Count; i++) { if (pociskiObcych[i].y == statek.y && pociskiObcych[i].x == statek.x) //kontakt ze statkiem { zycie--; if (zycie <= 0)//koniec gry i ponow gre { PasekStatystyk.Wyswietl(zycie, punkty); return; } PasekStatystyk.Wyswietl(zycie, punkty); pociskiObcych[i].WymarzObiekt(); pociskiObcych.RemoveAt(i); statek.WyswietlObiekt(); } else if (pociskiObcych[i].y < yRozmiar + 1) { pociskiObcych[i].Lot(); //lot pocisku } else if (pociskiObcych[i].y == yRozmiar + 1) //jezeli wyleca z planszy to znikaja { pociskiObcych[i].WymarzObiekt(); pociskiObcych.RemoveAt(i); } punkty = Kontakt.KontaktPociskObcy(pociskiGracza, listaObcych, punkty); PasekStatystyk.Wyswietl(zycie, punkty); //obcy moze zostac trafiony i znika jezeli zycie=0 w pociskach } } if (listaObcych.Count == 0) { Etap NumerEtapu = new Etap(); liczbaObcych = (int)Math.Pow(2, numerEtapu - 1); NumerEtapu.Spawn(listaObcych, liczbaObcych, xRozmiar); numerEtapu++; } } Odczytaj(); } }