コード例 #1
0
ファイル: herni_jadro.cs プロジェクト: Manatee777/MonsterPong
        public void Update(KeyboardState keyboard, Hrac1 hrac, Hrac2 hrac_2, GameTime gameTime)
        {
            if (keyboard.IsKeyDown(Keys.Space) && !stisknuto_hrac1)
            {
                list_strel.Add(new strela(vystrel, new Vector2(hrac.VratPozici().X + hrac.VratRectangle().Width / 2 - vystrel.Width / 2, hrac.VratPozici().Y - vystrel.Height / 2 - 10), 2));
                stisknuto_hrac1 = true;
                //vytvorit se nova strela v kolekci, ktera ma texturu, slozitejsi pozici a rychlost
            }

            if (keyboard.IsKeyUp(Keys.Space) && stisknuto_hrac1)
                stisknuto_hrac1 = false;

            //hrac2

            if (keyboard.IsKeyDown(Keys.Q) && !stisknuto_hrac2)
            {
                list_strel2.Add(new strela(vystrel2, new Vector2(hrac_2.VratPozici().X + hrac_2.VratRectangle().Width / 2 - vystrel2.Width / 2, hrac_2.VratPozici().Y - vystrel2.Height / 2 + hrac_2.VratRectangle().Width + 35) , -2)); //3 na konci je posun strely od kolize pryc
                stisknuto_hrac2 = true;
                //vytvorit se nova strela v kolekci, ktera ma texturu, slozitejsi pozici a rychlost
            }

            if (keyboard.IsKeyUp(Keys.Q) && stisknuto_hrac2)
                stisknuto_hrac2 = false;

            foreach (strela item in list_strel)
            {
                item.Update(gameTime);
            }

            foreach (strela item in list_strel2)
            {
                item.Update(gameTime);
            }

            //<SEKCE> KOLIZNÍ SYSTÉM <SEKCE>

            //PRUCHOD NEODRAZEJICI PLOCHOU HRAC1

            foreach (strela item in list_strel)
            {
                item.Update(gameTime);
                foreach (prekazka prekazka_item in list_prekazek)
                {
                    item.Kolize_prekazka1(prekazka_item, game);
                }

            }

            for (int i = 0; i < list_strel.Count; i++)
            {
                if (list_strel[i].smazani_strely) //bool ze tridy strela
                {
                    list_strel.RemoveAt(i);
                }
            }

            //kolizni system
            //PRUCHOD NEODRAZEJICI PLOCHOU HRAC2

            foreach (strela item in list_strel2)
            {
                item.Update(gameTime);
                foreach (prekazka prekazka_item in list_prekazek)
                {
                    item.Kolize_prekazka1(prekazka_item, game);
                }
            }

            for (int i = 0; i < list_strel2.Count; i++) //nejprve se pro vsechny strely v kolekci zavola kolize a ta se nasledne iteraci pole vyhodnoti pro smazani
            {
                if (list_strel2[i].smazani_strely)
                {
                    list_strel2.RemoveAt(i);
                }
            }

            //kolizni system
            //PRUCHOD ODRAZEJICI PLOCHOU HRAC1

            foreach (strela item in list_strel)
            {
                item.Update(gameTime);
                foreach (odrazova_plocha odraz_item in list_odrazovych_ploch)
                {
                    item.Kolize_odrazova_plocha(odraz_item, game);
                }

            }

            //kolizni system
            //PRUCHOD ODRAZEJICI PLOCHOU HRAC2

            foreach (strela item in list_strel2)
            {
                item.Update(gameTime);
                foreach (odrazova_plocha odraz_item in list_odrazovych_ploch)
                {
                    item.Kolize_odrazova_plocha(odraz_item, game);
                }

            }

               foreach (Hrac2 item in list_hrac2)
               {
               item.Update(gameTime); //musi byt, jinak se vubec neprovede pohyb z update bloku hrac2 tridy
               foreach (prekazka objekt in list_prekazek)
               {
                   item.Kolize_prekazka_Top(objekt, game);
                   item.Kolize_prekazka_Bottom(objekt, game);
                   item.Kolize_prekazka_Left(objekt, game);
                   item.Kolize_prekazka_Right(objekt, game);

               }

               }

               foreach (Hrac1 item in list_hrac1)
               {
                //musi byt, jinak se vubec neprovede pohyb z update bloku hrac2 tridy
               item.Update(gameTime);
               foreach (prekazka objekt in list_prekazek)
               {
                   item.Kolize_prekazka_Top(objekt, game);
                   item.Kolize_prekazka_Bottom(objekt, game);
                   item.Kolize_prekazka_Left(objekt, game);
                   item.Kolize_prekazka_Right(objekt, game);

               }

               }

               foreach (Hrac1 item in list_hrac1)
               {
               //musi byt, jinak se vubec neprovede pohyb z update bloku hrac2 tridy

               foreach (odrazova_plocha objekt in list_odrazovych_ploch)
               {
                   item.Kolize_odraz_Bottom(objekt, game);
                   item.Kolize_odraz_Top(objekt, game);
                   item.Kolize_odraz_Right(objekt, game);
                   item.Kolize_odraz_Left(objekt, game);

               }

               }

            foreach (Hrac2 item in list_hrac2)
               {
               //musi byt, jinak se vubec neprovede pohyb z update bloku hrac2 tridy

               foreach (odrazova_plocha objekt in list_odrazovych_ploch)
               {
                   item.Kolize_odraz_Bottom(objekt, game);
                   item.Kolize_odraz_Top(objekt, game);
                   item.Kolize_odraz_Right(objekt, game);
                   item.Kolize_odraz_Left(objekt, game);

               }

               }

            //player vs player

               foreach (Hrac1 item in list_hrac1)
               {
               //musi byt, jinak se vubec neprovede pohyb z update bloku hrac2 tridy

               foreach (Hrac2 objekt in list_hrac2)
               {
                   item.Kolize_prekazka_Top(objekt, game);
                   item.Kolize_prekazka_Bottom(objekt, game);
                   item.Kolize_prekazka_Left(objekt, game);
                   item.Kolize_prekazka_Right(objekt, game);

               }

               }

               foreach (Hrac2 item in list_hrac2)
               {
               //musi byt, jinak se vubec neprovede pohyb z update bloku hrac2 tridy

               foreach (Hrac1 objekt in list_hrac1)
               {
                   item.Kolize_prekazka_Top(objekt, game);
                   item.Kolize_prekazka_Bottom(objekt, game);
                   item.Kolize_prekazka_Left(objekt, game);
                   item.Kolize_prekazka_Right(objekt, game);

               }

               }

               //pro hrac vs strela
               foreach (strela item in list_strel)
               {

               foreach (Hrac1 objekt in list_hrac1)
               {
                   item.Kolize_hrac1(objekt, game);

               }

               }

               foreach (strela item in list_strel2)
               {
               foreach (Hrac2 objekt in list_hrac2)
               {
                   item.Kolize_hrac2(objekt, game);
               }
               }

             //hrac2

               foreach (strela item in list_strel2)
               {

               foreach (Hrac1 objekt in list_hrac1)
               {
                   item.Kolize_hrac1(objekt, game);

               }

               }

               foreach (strela item in list_strel)
               {

               foreach (Hrac2 objekt in list_hrac2)
               {
                   item.Kolize_hrac2(objekt, game);

               }

               }
        }