Esempio n. 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);
        }
Esempio n. 2
0
        // Entity vs. Entity
        public PositionedObjectVsPositionedObjectRelationship <FirstCollidableT, SecondCollidableT> CreateRelationship <FirstCollidableT, SecondCollidableT>(
            FirstCollidableT first, SecondCollidableT second)
            where FirstCollidableT : PositionedObject, ICollidable where SecondCollidableT : PositionedObject, ICollidable
        {
            var relationship = new PositionedObjectVsPositionedObjectRelationship <FirstCollidableT, SecondCollidableT>(first, second);

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

            return(relationship);
        }