示例#1
0
        //vzdycky musi byt v parametru zastupce tridy s kterou jdeme komunikovat
        public void Kolize_hrac2(Hrac2 objekt, Game1 game)
        {
            if (VratRectangle().Intersects(objekt.VratRectangle()))
            {
                this.smazani_strely = true;
                objekt.ZiskejPozici(new Vector2(900, 20));

            }
        }
示例#2
0
        protected override void LoadContent()
        {
            // Create a new SpriteBatch, which can be used to draw textures.
            spriteBatch = new SpriteBatch(GraphicsDevice);

            hracuv_objekt = new Hrac1(Content.Load<Texture2D>("hrac1"), new Vector2(30, 600), this);
            hracuv_objekt_2 = new Hrac2(Content.Load<Texture2D>("hrac2"), new Vector2(900, 20), this);
            list_hrac1.Add(hracuv_objekt);
            list_hrac2.Add(hracuv_objekt_2);

            zastupce_herniho_jadra = new herni_jadro(this, list_strel, list_strel2, list_prekazek, list_odrazovych_ploch, list_hrac1, list_hrac2, Content.Load<Texture2D>("strela1"), Content.Load<Texture2D>("strela2"));

            //list_strel musi byt v game1 deklarovan proto, aby naplnil konstruktor herni logiky a zajistil fyzicke vykreslovani grafiky,
            //konstruktoru se rekne ze instance ma dany listbox + texturu jeho členů

            list_prekazek.Add(new prekazka(Content.Load<Texture2D>("prekazka1"), new Vector2(650, 80)));
            list_prekazek.Add(new prekazka(Content.Load<Texture2D>("strom2"), new Vector2(300, 250)));

            list_prekazek.Add(new prekazka(Content.Load<Texture2D>("prekazka3"), new Vector2(550, 450)));
            list_prekazek.Add(new prekazka(Content.Load<Texture2D>("strom2"), new Vector2(200, 450)));
            list_prekazek.Add(new prekazka(Content.Load<Texture2D>("strom2"), new Vector2(750,200)));
            list_prekazek.Add(new prekazka(Content.Load<Texture2D>("strom2"), new Vector2(770,500)));
            list_odrazovych_ploch.Add(new odrazova_plocha(Content.Load<Texture2D>("prekazka3"), new Vector2(250, 150)));

            list_odrazovych_ploch.Add(new odrazova_plocha(Content.Load<Texture2D>("skala"), new Vector2(50, 150)));
            list_odrazovych_ploch.Add(new odrazova_plocha(Content.Load<Texture2D>("skala"), new Vector2(500, 200)));
            list_odrazovych_ploch.Add(new odrazova_plocha(Content.Load<Texture2D>("prekazka2"), new Vector2(300, 100)));
            list_odrazovych_ploch.Add(new odrazova_plocha(Content.Load<Texture2D>("prekazka2"), new Vector2(400, 180)));

            list_odrazovych_ploch.Add(new odrazova_plocha(Content.Load<Texture2D>("skala"), new Vector2(30, 550)));
            list_odrazovych_ploch.Add(new odrazova_plocha(Content.Load<Texture2D>("skala"), new Vector2(200, 400)));
            list_odrazovych_ploch.Add(new odrazova_plocha(Content.Load<Texture2D>("prekazka2"), new Vector2(300, 500)));
            list_odrazovych_ploch.Add(new odrazova_plocha(Content.Load<Texture2D>("prekazka2"), new Vector2(550, 380)));
        }
示例#3
0
        //kolize player vs player
        public void Kolize_prekazka_Top(Hrac2 objekt, Game1 game)
        {
            if (VratRectangle().vrchol(objekt.VratRectangle()))
            {
                if (Keyboard.GetState().IsKeyDown(Keys.Down))
                {
                    rychlost.Y = 0f;
                }

            }
        }
示例#4
0
        public void Kolize_prekazka_Right(Hrac2 objekt, Game1 game)
        {
            if (VratRectangle().pravy(objekt.VratRectangle()))
            {
                if (Keyboard.GetState().IsKeyDown(Keys.Left))
                {
                    rychlost.X = 0f;
                }

            }
        }
示例#5
0
        public void Kolize_prekazka_Bottom(Hrac2 objekt, Game1 game)
        {
            if (VratRectangle().spodek(objekt.VratRectangle()))
            {
                if (Keyboard.GetState().IsKeyDown(Keys.Up))
                {
                    rychlost.Y = 0f;
                }

            }
        }
示例#6
0
        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);

               }

               }
        }