Esempio n. 1
0
        public void LoadContent(ContentManager content)
        {
            sango = new Sango(new StateManager(content, inputHandler));
            Sango aux = (Sango)sango;

            exit = new Actors.Objects.Object(1, new Vector2(1860, 512), content.Load <Texture2D>("Exit"), 0);
            aux.LoadContent(content);
            map.SetHearts(content);
            levelSnd = content.Load <SoundEffect>("No Victim");
            actCollider.LoadContent(content);

            Actor  bat     = new Youkai(new StateManager(content, inputHandler));
            Actor  oni     = new Youkai(new StateManager(content, inputHandler));
            Actor  oni2    = new Youkai(new StateManager(content, inputHandler));
            Actor  oni3    = new Youkai(new StateManager(content, inputHandler));
            Actor  Gyu     = new Youkai(new StateManager(content, inputHandler));
            Youkai auxBat  = (Youkai)bat;
            Youkai auxOni  = (Youkai)oni;
            Youkai auxOni2 = (Youkai)oni2;
            Youkai auxOni3 = (Youkai)oni3;
            Youkai auxGyu  = (Youkai)Gyu;

            auxBat.setState(new BatState(auxBat, auxBat.state));
            auxOni.setState(new OniState(auxOni, auxOni.state, new Vector2(1120, 480)));
            auxOni2.setState(new OniState(auxOni2, auxOni2.state, new Vector2(704, 320)));
            auxOni3.setState(new OniState(auxOni3, auxOni3.state, new Vector2(1728, 288)));
            auxGyu.setState(new GyuState(auxGyu, auxGyu.state, new Vector2(1550, 501)));
            youkais.Add(auxBat);
            youkais.Add(auxOni);
            youkais.Add(auxOni2);
            youkais.Add(auxOni3);
            youkais.Add(auxGyu);
        }
Esempio n. 2
0
        public void Gravity(IList <Rectangle> collisionRectangles, Actor actors)
        {
            Point origin = actors.origin.ToPoint() + new Point(0, 23);
            Sango sango  = (Sango)actors;

            if (!sango.grounded)
            {
                bool  yCollide = false;
                float moveX    = 0.0f;

                foreach (Rectangle rect in collisionRectangles)
                {
                    if (rect.Contains(origin))
                    {
                        yCollide       = true;
                        sango.grounded = true;
                        //Console.WriteLine("Y : "+rect.ToString() + " Sango: " + sango.xCollision.ToString());
                    }
                    if (sango.fullCollision.Intersects(rect))
                    {
                        if (sango.fullCollision.X < rect.X)
                        {
                            moveX = -1.0f;
                        }
                        else if (sango.fullCollision.X > rect.X)
                        {
                            moveX = 1.0f;
                        }
                        if (sango.fullCollision.Y + sango.fullCollision.Height > rect.Y)
                        {
                            sango.nextMoveY = -1.0f;
                        }
                    }
                }

                if (!yCollide)
                {
                    actors.position += new Vector2(moveX, 2);
                }
            }

            else
            {
                bool yCollide = false;
                foreach (Rectangle rect in collisionRectangles)
                {
                    if (rect.Contains(origin))
                    {
                        yCollide = true;
                        //Console.WriteLine("Y : "+rect.ToString() + " Sango: " + sango.xCollision.ToString());
                    }
                }


                if (!yCollide)
                {
                    sango.grounded = false;
                }
            }
        }
Esempio n. 3
0
        private void jumpCollision(IList <Rectangle> collisionRectangles, Actor actors)
        {
            Sango sangoJump = (Sango)actors;
            bool  xCollide  = false;
            bool  yCollide  = false;


            foreach (Rectangle rect in collisionRectangles)
            {
                if (actors.xCollision.Intersects(rect))
                {
                    xCollide = true;
                    //Console.WriteLine("X : " + rect.ToString() + " Sango: " + sango.xCollision.ToString());
                }
                if (actors.yCollision.Intersects(rect))
                {
                    yCollide = true;
                    //Console.WriteLine("Y : "+rect.ToString() + " Sango: " + sango.xCollision.ToString());
                }
            }

            if (!xCollide && !yCollide)
            {
                actors.position += sangoJump.jumpVector;
            }
            else if (!xCollide && yCollide)
            {
                actors.position = new Vector2(actors.position.X + sangoJump.jumpVector.X, actors.position.Y);
            }
            else if (xCollide && !yCollide)
            {
                actors.position = new Vector2(actors.position.X, actors.position.Y + sangoJump.jumpVector.Y);
            }
        }
Esempio n. 4
0
        static void Main(string[] args)
        {
            Console.WriteLine("STRATEGY DESIGN PATTERN\n");

            Console.WriteLine("--------");

            //moves
            IJumpBehaviour shortJump   = new ShortJump();
            IJumpBehaviour longJump    = new LongJump();
            IKickBehaviour tornadoKick = new TornadoKick();

            //create fighter
            Fighter sango = new Sango(tornadoKick, shortJump);

            sango.Display();

            //fight
            sango.Punch();
            sango.Kick();
            sango.Jump();

            //change behaviour dynamically(runtime)
            sango.SetJumpBehaviour(longJump);
            sango.Jump();
        }
Esempio n. 5
0
 private void checkHit(IList <Rectangle> spikes, Actor actors)
 {
     foreach (Rectangle spike in spikes)
     {
         if (actors.fullCollision.Intersects(spike))
         {
             Sango aux = (Sango)actors;
             aux.lives   -= 1;
             aux.position = new Vector2(36, 534);
         }
     }
 }
Esempio n. 6
0
        public void Collide(IList <Rectangle> collisionRectangles, IList <Rectangle> spikes, Actor actors)
        {
            Sango sangoAux = (Sango)actors;

            checkHit(spikes, actors);
            if (!sangoAux.hasJumped)
            {
                regularCollision(collisionRectangles, actors);
            }
            else
            {
                jumpCollision(collisionRectangles, actors);
            }
        }
Esempio n. 7
0
 public void Update(IList <Heart> hearts, Actor sango)
 {
     for (int i = 0; i < hearts.Count; i++)
     {
         if (hearts[i].isAvailable)
         {
             if (hearts[i].Update(sango.fullCollision))
             {
                 Sango aux = (Sango)sango;
                 aux.lives += 1;
             }
         }
     }
 }
        public void collide(Actor sango, IList <Actor> youkais)
        {
            Sango aux = (Sango)sango;

            for (int i = 0; i < youkais.Count; i++)
            {
                if (sango.fullCollision.Intersects(youkais[i].fullCollision))
                {
                    aux.lives   -= 1;
                    aux.position = new Vector2(aux.position.X - 16, aux.position.Y);
                }
                if (aux.boomerang != null)
                {
                    if (aux.boomerang.fullCollision.Intersects(youkais[i].fullCollision))
                    {
                        hitSndInstance.Play();
                        youkais.Remove(youkais[i]);
                    }
                }
            }
        }