示例#1
0
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="platforms"></param>
        /// <param name="gameField"></param>
        public CollisionManager(List <Platform> platforms, GameLevelEx gameLevel)
        {
            this.platforms = platforms;
            this.gameLevel = gameLevel;

            foreach (Platform platform in platforms)
            {
                CollisionGroupPair groupPair = new CollisionGroupPair(gameLevel.RemovedBlocksGroup, platform.BallsGroup);
                CollisionRules.CollisionGroupRules.Add(groupPair, CollisionRule.NoBroadPhase);
            }

            gameLevel.Body.CollisionInformation.Events.ContactCreated += handleContactCreated;
        }
示例#2
0
        public override void LoadContent()
        {
            // Create physics space and add some gravity to it
            space = new Space();

            // Add space instance to game services
            screenManager.Game.Services.AddService(typeof(ISpace), space);

            // Set up space
            space.ForceUpdater.Gravity = new Vector3(0.0f, -9.81f, 0.0f);
            space.DeactivationManager.VelocityLowerLimit = 0.01f;

            // Init view and projection matrices
            camera = new Camera(screenManager.GraphicsDevice.Viewport);
            camera.Initialize();
            // Place camera to appropriate position
            camera.View = Matrix.CreateLookAt(new Vector3(0.0f, 30.0f, 0.0f), new Vector3(0.0f, 0.0f, 0.0f), Vector3.Forward);

            screenManager.Game.Services.AddService(typeof(Camera), camera);

            // Load font
            font = ScreenManager.Game.Content.Load <SpriteFont>(@"Fonts\InfoScreenFont");

            // Load background image
            bgTex = screenManager.Game.Content.Load <Texture2D>(@"Images\bk");

            // Load dimming image
            dimTex = screenManager.Game.Content.Load <Texture2D>(@"Images\dim");

            CreatePlatforms();

            level = new GameLevelEx(screenManager.Game);
            level.LoadLevel(@"Game\Levels\testlvl");

            collisionManager = new CollisionManager(platforms, level);

            model = screenManager.Game.Content.Load <Model>(@"Models\block02");
            c     = new DrawableComponent(model, camera, screenManager.Game);
        }