예제 #1
0
        public static void HandleCollision(Skier skier, List <GameObject> obstacles)
        {
            // Taking body`s coordinates of the skier
            List <FieldCoordinates> skierProfile = skier.GetCollisionProfile();

            // Checking for collision between skier and all other objects
            foreach (var obj in obstacles)
            {
                if (obj.CanCollideWith(skier.GetCollisionName()))
                {
                    // Taking obstacle`s coordinates
                    List <FieldCoordinates> objProfile = obj.GetCollisionProfile();

                    if (HaveCollision(skierProfile, objProfile))
                    {
                        if (obj.GetCollisionName() == Bonus.CollisionName)
                        {
                            obj.RespondToCollision(new CollisionData(obj.GetCollisionName()));
                        }
                        else if (obj.GetCollisionName() == Tree.CollisionName)
                        {
                            skier.RespondToCollision(new CollisionData(obj.GetCollisionName()));
                        }
                    }
                }
            }
        }
예제 #2
0
        public static void HandleCollision(Skier skier, List<GameObject> obstacles)
        {
            // Taking body`s coordinates of the skier
            List<FieldCoordinates> skierProfile = skier.GetCollisionProfile();

            // Checking for collision between skier and all other objects
            foreach (var obj in obstacles)
            {
                if (obj.CanCollideWith(skier.GetCollisionName()))
                {
                    // Taking obstacle`s coordinates
                    List<FieldCoordinates> objProfile = obj.GetCollisionProfile();

                    if(HaveCollision(skierProfile, objProfile))
                    {
                        if (obj.GetCollisionName() == Bonus.CollisionName)
                        {
                            obj.RespondToCollision(new CollisionData(obj.GetCollisionName()));
                        }
                        else if (obj.GetCollisionName() == Tree.CollisionName)
                        {
                            skier.RespondToCollision(new CollisionData(obj.GetCollisionName()));
                        }
                    }
                }
            }
        }
예제 #3
0
파일: Engine.cs 프로젝트: nedevny/skier
 private void AddSkier(GameObject obj)
 {
     this.skier = obj as Skier;
 }
예제 #4
0
파일: MainClass.cs 프로젝트: nedevny/skier
        static void Initialize(Engine engine)
        {
            Skier skier = new Skier(new FieldCoordinates(15, FieldCols / 2));

            engine.AddObject(skier);
        }
예제 #5
0
파일: Engine.cs 프로젝트: nedevny/skier
 private void AddSkier(GameObject obj)
 {
     this.skier = obj as Skier;
 }
예제 #6
0
파일: MainClass.cs 프로젝트: nedevny/skier
 static void Initialize(Engine engine)
 {
     Skier skier = new Skier(new FieldCoordinates(15, FieldCols / 2));
     engine.AddObject(skier);
 }