Example #1
0
        void InitializeCollisionsRelations()
        {
            //Create a relation between the boat collision and the tiles that form the island.
            TileShapeCollection LayerCollisions = Terrain.Collisions.First(x => x.Name == "Collisions");

            RelBoatIsland = CollisionManager.Self.CreateTileRelationship(
                PlayerBoat, LayerCollisions);

            RelBoatIsland.SetMoveCollision(0, 1);


            RelPlayerBoat = CollisionManager.Self.CreateRelationship(
                PlayerInstance, PlayerBoat);
            RelPlayerBoat.SetMoveCollision(0, 1);

            RelBoatCannonball = CollisionManager.Self.CreateRelationship(BoatList, CannonballList);
            RelBoatCannonball.SetEventOnlyCollision();
            RelBoatCannonball.CollisionOccurred += BoatCollidedWithCannonball;

            RelBulletTerrain = CollisionManager.Self.CreateTileRelationship(
                BulletList, RockCollision);
            RelBulletTerrain.CollisionOccurred += BulletCollidedWithTerrain;

            RelPlayerTerrain = CollisionManager.Self.CreateTileRelationship(
                PlayerInstance, RockCollision);
            RelPlayerTerrain.SetMoveCollision(1, 0);

            RelPlayerWeaponEnemies = CollisionManager.Self.CreateRelationship(
                PlayerInstance.mWeaponEntity, EnemyList);
            RelPlayerWeaponEnemies.SetEventOnlyCollision();
            RelPlayerWeaponEnemies.CollisionOccurred += PlayerWeaponHitEnemy;


            TileEntityInstantiator.CreateEntitiesFrom(Terrain);
        }
Example #2
0
        // List vs. List
        public ListVsListRelationship <FirstCollidableT, SecondCollidableT> CreateRelationship <FirstCollidableT, SecondCollidableT>(
            PositionedObjectList <FirstCollidableT> first, PositionedObjectList <SecondCollidableT> second)
            where FirstCollidableT : PositionedObject, ICollidable where SecondCollidableT : PositionedObject, ICollidable
        {
            var relationship = new ListVsListRelationship <FirstCollidableT, SecondCollidableT>(first, second);

            relationship.Partitions = Partitions;
            this.Relationships.Add(relationship);
            return(relationship);
        }