コード例 #1
0
        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();
            }
        }
コード例 #2
0
        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();
            }
        }