Ejemplo n.º 1
0
        public override void Initialize(GnomicGame game)
        {
            Hud = ParentGame.GetScreen <HudScreen>();

            int floorHeight = 60;

            Physics = new Gnomic.Physics.PhysicsSystem(this);
            Physics.CreateBorder(ParentGame.ScreenWidth * PLAY_AREA_WIDTH_IN_SCREENS,
                                 ParentGame.ScreenHeight, // * PLAY_AREA_HEIGHT_IN_SCREENS,
                                 new Vector2(0.0f, -floorHeight),
                                 /*friction*/ 0.005f);

            // Create a 2D camera
            base.Camera2D = camera = new Camera2D(ParentGame.GraphicsDevice.Viewport);

            CreateBackground();

            Vector2 vehiclePos = new Vector2(ParentGame.ScreenWidth / 5, ParentGame.ScreenHeight - floorHeight);
            Vector2 vehicleSizePhysicsCoords   = new Vector2(2.7f, 4.5f);
            Vector2 vehicleOffsetPhysicsCoords = new Vector2(0.0f, -vehicleSizePhysicsCoords.Y / 2.0f);

            Vector2 princessPos = vehiclePos - ConvertUnits.ToDisplayUnits(new Vector2(0.0f, vehicleSizePhysicsCoords.Y));

            lilMissBadAss = Princess.CreatePrincess(princessPos, new Vector2(0.6f, 1.2f), new Vector2(0.0f, -0.6f));
            base.AddEntity(lilMissBadAss); // sets ParentScreen

            Vehicle = PrincessVehicle.CreateDefaultEntity(vehiclePos, vehicleSizePhysicsCoords, vehicleOffsetPhysicsCoords);
            base.AddEntity(Vehicle);


            units = new UnitManager(this);

            //float startX = 0.7f;

            //for (int i = 0; i < 20; ++i)
            //{
            //    AddUnit(UnitType.Grunt, new Vector2(startX+(i*0.05f), 0.7f));
            //}

            //startX = 0.4f;

            //for (int i = 0; i < 5; ++i)
            //{
            //    AddUnit(UnitType.Knight, new Vector2(startX + (i * 0.05f), 0.7f));
            //}

            projectiles = new ProjectileManager(this);

            this.Audio = this.ParentGame.Audio;

            base.Initialize(game);

            standingJoint = new RevoluteJoint(lilMissBadAss.Physics.Bodies[0], Vehicle.Physics.Bodies[0], Vector2.Zero, new Vector2(0.0f, -vehicleSizePhysicsCoords.Y));
            Physics.World.AddJoint(standingJoint);
        }
Ejemplo n.º 2
0
        public override void Initialize(GnomicGame game)
        {
            Hud = ParentGame.GetScreen<HudScreen>();

            int floorHeight = 60;
            Physics = new Gnomic.Physics.PhysicsSystem(this);
            Physics.CreateBorder(ParentGame.ScreenWidth * PLAY_AREA_WIDTH_IN_SCREENS,
                                 ParentGame.ScreenHeight, // * PLAY_AREA_HEIGHT_IN_SCREENS,
                                 new Vector2(0.0f, -floorHeight),
                                 /*friction*/ 0.005f);

            // Create a 2D camera
            base.Camera2D = camera = new Camera2D(ParentGame.GraphicsDevice.Viewport);

            CreateBackground();

            Vector2 vehiclePos = new Vector2(ParentGame.ScreenWidth / 5, ParentGame.ScreenHeight - floorHeight);
            Vector2 vehicleSizePhysicsCoords = new Vector2(2.7f, 4.5f);
            Vector2 vehicleOffsetPhysicsCoords = new Vector2(0.0f, -vehicleSizePhysicsCoords.Y / 2.0f);

            Vector2 princessPos = vehiclePos - ConvertUnits.ToDisplayUnits(new Vector2(0.0f, vehicleSizePhysicsCoords.Y));
            lilMissBadAss = Princess.CreatePrincess(princessPos, new Vector2(0.6f, 1.2f), new Vector2(0.0f, -0.6f));
            base.AddEntity(lilMissBadAss); // sets ParentScreen

            Vehicle = PrincessVehicle.CreateDefaultEntity(vehiclePos, vehicleSizePhysicsCoords, vehicleOffsetPhysicsCoords);
            base.AddEntity(Vehicle);

            units = new UnitManager(this);

            //float startX = 0.7f;

            //for (int i = 0; i < 20; ++i)
            //{
            //    AddUnit(UnitType.Grunt, new Vector2(startX+(i*0.05f), 0.7f));
            //}

            //startX = 0.4f;

            //for (int i = 0; i < 5; ++i)
            //{
            //    AddUnit(UnitType.Knight, new Vector2(startX + (i * 0.05f), 0.7f));
            //}

            projectiles = new ProjectileManager(this);

            this.Audio = this.ParentGame.Audio;

            base.Initialize(game);

            standingJoint = new RevoluteJoint(lilMissBadAss.Physics.Bodies[0], Vehicle.Physics.Bodies[0], Vector2.Zero, new Vector2(0.0f, -vehicleSizePhysicsCoords.Y));
            Physics.World.AddJoint(standingJoint);
        }
Ejemplo n.º 3
0
        public PhysicsSystem(GameScreen screen)
        {
            this.screen = screen;

            GnomicGame game = screen.ParentGame;

            // Todo: pass in a PhysicsSystemSetting with gravity, worldMin and worldMax
            world = new World(
                new Vector2(0.0f, 20.0f),
                new FarseerPhysics.Collision.AABB(Vector2.One * -500.0f, Vector2.One * 500.0f));

            debugView = new DebugViewXNA(world);
            debugView.AppendFlags(DebugViewFlags.Shape);
            debugView.DefaultShapeColor  = Color.White;
            debugView.SleepingShapeColor = Color.LightGray;
            debugView.LoadContent(game.GraphicsDevice, game.Content, "GameFont");

            projection = Matrix.CreateOrthographicOffCenter(
                0f,
                ConvertUnits.ToSimUnits(game.ScreenWidth),
                ConvertUnits.ToSimUnits(game.ScreenHeight),
                0f, 0f, 1f);
        }
Ejemplo n.º 4
0
        public override void Initialize(GnomicGame game)
        {
            levelScreen = ParentGame.GetScreen <LevelScreen>();

            Vector2 imageSize = new Vector2(64.0f / 720.0f);
            Vector2 topRight  = new Vector2(ParentGame.ScreenWidth, -ParentGame.ScreenHeight) * (0.5f / ParentGame.ScreenHeight) - new Vector2(imageSize.X, -imageSize.Y);

            IconMoveRight = base.AddSprite("IconMove", imageSize, topRight, new Vector2(0.5f), true);
            IconMoveLeft  = base.AddSprite("IconMove", imageSize, topRight - new Vector2(imageSize.X, 0.0f), new Vector2(0.5f), true);
            IconMoveLeft.Settings.SpriteEffects = SpriteEffects.FlipHorizontally;

            ClipEntitySettings settings;

            settings                 = new ClipEntitySettings();
            settings.ClipFile        = "heart";
            settings.Scale           = Vector2.One;
            settings.DefaultAnimName = "heartBG";
            settings.Position        = new Vector2(90, 90);
            HeartBG = (ClipEntity)settings.CreateEntity();
            base.AddEntity(HeartBG);

            settings                 = new ClipEntitySettings();
            settings.ClipFile        = "heart";
            settings.Scale           = Vector2.One * 0.5f;
            settings.DefaultAnimName = "beatA";
            settings.Position        = new Vector2(90, 90);
            Heart = (ClipEntity)settings.CreateEntity();
            base.AddEntity(Heart);

            font = Content.Load <SpriteFont>("UIFont");

            base.Initialize(game);

            IconMoveRight.Visible = false;
            IconMoveLeft.Visible  = false;
        }
Ejemplo n.º 5
0
        public override void Initialize(GnomicGame game)
        {
            levelScreen = ParentGame.GetScreen<LevelScreen>();

            Vector2 imageSize = new Vector2(64.0f / 720.0f);
            Vector2 topRight = new Vector2(ParentGame.ScreenWidth, -ParentGame.ScreenHeight) * (0.5f / ParentGame.ScreenHeight) - new Vector2(imageSize.X, -imageSize.Y);

            IconMoveRight = base.AddSprite("IconMove", imageSize, topRight, new Vector2(0.5f), true);
            IconMoveLeft = base.AddSprite("IconMove", imageSize, topRight - new Vector2(imageSize.X, 0.0f), new Vector2(0.5f), true);
            IconMoveLeft.Settings.SpriteEffects = SpriteEffects.FlipHorizontally;

            ClipEntitySettings settings;

            settings = new ClipEntitySettings();
            settings.ClipFile = "heart";
            settings.Scale = Vector2.One;
            settings.DefaultAnimName = "heartBG";
            settings.Position = new Vector2(90, 90);
            HeartBG = (ClipEntity)settings.CreateEntity();
            base.AddEntity(HeartBG);

            settings = new ClipEntitySettings();
            settings.ClipFile = "heart";
            settings.Scale = Vector2.One * 0.5f;
            settings.DefaultAnimName = "beatA";
            settings.Position = new Vector2(90, 90);
            Heart = (ClipEntity)settings.CreateEntity();
            base.AddEntity(Heart);

            font = Content.Load<SpriteFont>("UIFont");

            base.Initialize(game);

            IconMoveRight.Visible = false;
            IconMoveLeft.Visible = false;
        }