예제 #1
0
        public bool turtleSpinCollision(Fixture f1, Fixture f2, Contact contact)
        {
            Console.WriteLine(f2.Body.UserData);
            if (f1.UserData != null && f2.UserData != null)
            {
                Vector2 normal = Vector2.Zero;
                FixedArray2<Vector2> points;
                contact.GetWorldManifold(out normal, out points);

                char id = (char)f1.UserData;
                
                AnimatedSprite Coll;
                if (id == 'o')
                    Coll = new AnimatedSprite(orange_coll_sprite, 2, 3, 4);
                else if (id == 'r')
                    Coll = new AnimatedSprite(red_coll_sprite, 2, 3, 4);
                else if (id == 'b')
                    Coll = new AnimatedSprite(blue_coll_sprite, 2, 3, 4);
                else if (id == 'p')
                    Coll = new AnimatedSprite(purple_coll_sprite, 2, 3, 4);
                else
                    Coll = new AnimatedSprite(orange_coll_sprite, 2, 3, 4);
                Coll.playOnce = true;
                Coll.position = ConvertUnits.ToDisplayUnits(points[0]);
                Coll.normal = ConvertUnits.ToDisplayUnits(f1.Body.Position) - Coll.position;
                spriteList.Add(Coll);
            }
            return true;
        }
예제 #2
0
        private void GameLogic(GameTime gameTime)
        {
            
            if (oTurtle.isActive && checkKnockOut(oTurtle.position))
            {
                oTurtle.Remove();
                AnimatedSprite oDeath = new AnimatedSprite(death_sprite, 3, 3, 9);
                oDeath.playOnce = true;
                oDeath.position = oTurtle.position;
                spriteList.Add(oDeath);
                noOfInActive++;
            }

            if (rTurtle.isActive && checkKnockOut(rTurtle.position))
            {
                rTurtle.Remove();
                AnimatedSprite rDeath = new AnimatedSprite(death_sprite, 3, 3, 9);
                rDeath.playOnce = true;
                rDeath.position = rTurtle.position;
                spriteList.Add(rDeath);
                noOfInActive++;
            }

            if (bTurtle.isActive && checkKnockOut(bTurtle.position))
            {
                bTurtle.Remove();
                AnimatedSprite bDeath = new AnimatedSprite(death_sprite, 3, 3, 9);
                bDeath.playOnce = true;
                bDeath.position = bTurtle.position;
                spriteList.Add(bDeath);
                noOfInActive++;
            }

            if (pTurtle.isActive && checkKnockOut(pTurtle.position))
            {
                pTurtle.Remove();
                AnimatedSprite pDeath = new AnimatedSprite(death_sprite, 3, 3, 9);
                pDeath.playOnce = true;
                pDeath.position = pTurtle.position;
                spriteList.Add(pDeath);
                noOfInActive++;
            }
            
            if (noOfInActive == 3)
            {
                if (rTurtle.isActive)
                {
                    winner = "Red Wins";
                }
                else if (oTurtle.isActive) {
                    winner = "Orange Wins";
                }
                else if (bTurtle.isActive)
                {
                    winner = "Blue Wins";
                }
                else if (pTurtle.isActive)
                {
                    winner = "Purple Wins";
                }
                gameFinished = true;
            }

        }