/// <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; }
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); }