コード例 #1
0
        // abstract graphics from the physics
        // 2D array of integers, representing the tile
        // 0, 1 wall, etc
        // check element array next to it
        // scale by a constant, tile at row, 4, col 2, multiple by pixel size
        // tutorials, scale up without blurry

        protected override void LoadForeground()
        {
            var player       = new GameObject("PlayerOne", new Vector2(0, 0));
            var sprites      = new SpriteMappingComponent(RpgGraphics.GameboySpriteMapping, "Player1");
            var nextItem     = new KeyboardEventComponent(Keys.X, ObjectEvent.NextItem);
            var previousItem = new KeyboardEventComponent(Keys.Z, ObjectEvent.PreviousItem);
            var useItem      = new KeyboardActionComponent(Keys.Enter, UseItem);
            var useAction    = new KeyboardActionComponent(Keys.Space, UseAction);
            // TODO: Could be refactored into single class.
            // Need to apply movement constraints based off grid
            var moveUp       = new KeyboardEventComponent(Keys.Up, ObjectEvent.MoveUp);
            var moveDown     = new KeyboardEventComponent(Keys.Down, ObjectEvent.MoveDown);
            var moveLeft     = new KeyboardEventComponent(Keys.Left, ObjectEvent.MoveLeft);
            var moveRight    = new KeyboardEventComponent(Keys.Right, ObjectEvent.MoveRight);
            var gridMovement = new GridMovementComponent(16);

            player.AddComponent(sprites);
            player.AddComponent(nextItem);
            player.AddComponent(previousItem);
            player.AddComponent(useItem);
            player.AddComponent(useAction);
            player.AddComponent(moveUp);
            player.AddComponent(moveDown);
            player.AddComponent(moveLeft);
            player.AddComponent(moveRight);
            player.AddComponent(gridMovement);
            ForegroundLayer.AddGameObject(player);
        }
コード例 #2
0
        protected override void LoadDisplay()
        {
            var player            = new GameObject("PlayerOneSelection", new Vector2(10, 10));
            var playerText        = new TextComponent(FontGraphics.PropertialFont_8X8, "PLAYER ONE");
            var startText         = new TextComponent(FontGraphics.PropertialFont_8X8, "PRESS SPACE TO START", new Vector2(0, 100));
            var counter           = new CounterComponent(ObjectEvent.PreviousCharacter, ObjectEvent.NextCharacter, 0, _playerCharacters.Count() - 1);
            var sprites           = new SpriteMappingsComponent(RpgGraphics.GameboySpriteMapping, _playerCharacters, new Vector2(10, 50), counter);
            var nextCharacter     = new KeyboardEventComponent(Keys.Right, ObjectEvent.NextCharacter);
            var previousCharacter = new KeyboardEventComponent(Keys.Left, ObjectEvent.PreviousCharacter);
            var action            = new KeyboardActionComponent(Keys.Space, Action);

            player.AddComponent(playerText);
            player.AddComponent(startText);
            player.AddComponent(counter);
            player.AddComponent(sprites);
            player.AddComponent(nextCharacter);
            player.AddComponent(previousCharacter);
            player.AddComponent(action);
            DisplayLayer.AddGameObject(player);
        }
コード例 #3
0
        protected override void LoadDisplay()
        {
            var xCentre = GameConstants.ScreenBoundary.Width / 2;
            var yCentre = GameConstants.ScreenBoundary.Height / 2;

            var display       = new GameObject("Text", new Vector2(xCentre, yCentre));
            var font          = FontGraphics.PropertialFont_8X8;
            var textSimpleRpg = new TextComponent(font, "SIMPLE RPG", new Vector2(-75, -25), 2);
            var textEnter     = new TextComponent(font, "PRESS ENTER", new Vector2(-80, 25), 2);
            var shield        = new SpriteMappingComponent(RpgGraphics.GameboySpriteMapping, "Sword10", new Vector2(-250, 0), 3f);
            var sword         = new SpriteMappingComponent(RpgGraphics.GameboySpriteMapping, "Shield10", new Vector2(200, 0), 3f);
            var action        = new KeyboardActionComponent(Keys.Enter, Action);

            display.AddComponent(textSimpleRpg);
            display.AddComponent(textEnter);
            display.AddComponent(shield);
            display.AddComponent(sword);
            display.AddComponent(action);
            DisplayLayer.AddGameObject(display);
        }
コード例 #4
0
        private GameObject CreatePlayer(string playerCharacter, int xStartPosition, int yStartPosition, Keys key)
        {
            var player = new GameObject(playerCharacter, new Vector2(xStartPosition, yStartPosition));
            // TODO: Pass in the actual player selected character through constructor
            var sprites          = new SpriteMappingComponent(RpgGraphics.GameboySpriteMapping, playerCharacter);
            var bounday          = new BoundaryComponent(null, 16, 16);
            var constantMovement = new AccelerateMovementComponent(GetMovement);
            var collisionEvent   = new ObjectEventComponent(ObjectEvent.CollisionEnter, CollisionEnter);
            var collisionExit    = new ObjectEventComponent(ObjectEvent.CollisionExit, CollisionExit);
            var keyAction        = new KeyboardActionComponent(key, PlayerAttacked);

            player.AddComponent(sprites);
            player.AddComponent(bounday);
            player.AddComponent(constantMovement);
            player.AddComponent(collisionEvent);
            player.AddComponent(collisionExit);
            player.AddComponent(keyAction);
            ForegroundLayer.AddGameObject(player);
            return(player);
        }
コード例 #5
0
ファイル: SurfLevel.cs プロジェクト: abowen/MonoGameOpenGL
        protected override void LoadDisplay()
        {
            var textX = GameHelper.GetRelativeScaleX(0.2f);
            var textY = GameHelper.GetRelativeScaleY(0.9f);

            var playerOne = new GameObject("Text", new Vector2(textX, textY));
            var textOne   = new TextComponent(FontGraphics.BloxxitFont_8X8, "PRESS SPACE");
            var actionOne = new KeyboardActionComponent(Keys.Space, CreatePlayerOne);

            playerOne.AddComponent(textOne);
            playerOne.AddComponent(actionOne);
            DisplayLayer.AddGameObject(playerOne);

            var playerTwo = new GameObject("Text", new Vector2(textX * 2, textY));
            var textTwo   = new TextComponent(FontGraphics.BloxxitFont_8X8, "PRESS A GAMEPAD");
            var actionTwo = new ButtonActionComponent(Buttons.A, CreatePlayerTwo);

            playerTwo.AddComponent(textTwo);
            playerTwo.AddComponent(actionTwo);
            DisplayLayer.AddGameObject(playerTwo);


            var playerThree = new GameObject("Text", new Vector2(textX * 3, textY));
            var textThree   = new TextComponent(FontGraphics.BloxxitFont_8X8, "PRESS ENTER");
            var actionThree = new KeyboardActionComponent(Keys.Enter, CreatePlayerThree);

            playerThree.AddComponent(textThree);
            playerThree.AddComponent(actionThree);
            DisplayLayer.AddGameObject(playerThree);

            var foam = new[] {
                CommonGraphics.TransparentCubeAsset,
                CommonGraphics.WhiteCubeAsset,
                CommonGraphics.BlueCubeAsset,
                CommonGraphics.LightBlueCubeAsset
            };
            var waveManager = new WaveManager(foam, BackgroundLayer, ForegroundLayer, _waveHeight, _waveTopY, _waveSpeed);

            DisplayLayer.Managers.Add(waveManager);
        }
コード例 #6
0
        private void CreatePlayerTwo(Vector2 startPosition)
        {
            var player     = new GameObject("PlayerTwoSelection", new Vector2(10, 10) + startPosition);
            var playerText = new TextComponent(FontGraphics.PropertialFont_8X8, "PLAYER TWO");
            var startText  = new TextComponent(FontGraphics.PropertialFont_8X8, "PRESS TAB TO START", new Vector2(0, 100));
            var counter    = new CounterComponent(ObjectEvent.PreviousCharacter, ObjectEvent.NextCharacter, 0,
                                                  _playerCharacters.Count() - 1);
            var sprites = new SpriteMappingsComponent(RpgGraphics.GameboySpriteMapping, _playerCharacters, new Vector2(10, 50),
                                                      counter);
            var nextCharacter     = new KeyboardEventComponent(Keys.D, ObjectEvent.NextCharacter);
            var previousCharacter = new KeyboardEventComponent(Keys.A, ObjectEvent.PreviousCharacter);
            var action            = new KeyboardActionComponent(Keys.Tab, Action);

            player.AddComponent(playerText);
            player.AddComponent(startText);
            player.AddComponent(counter);
            player.AddComponent(sprites);
            player.AddComponent(nextCharacter);
            player.AddComponent(previousCharacter);
            player.AddComponent(action);
            DisplayLayer.AddGameObject(player);
        }
コード例 #7
0
        protected override void LoadDisplay()
        {
            var xCentre = GameHelper.GetRelativeScaleX(0.5f);
            var yCentre = GameHelper.GetRelativeScaleY(0.5f);
            var xOffset = GameHelper.GetRelativeScaleX(0.1f);
            var yOffset = GameHelper.GetRelativeScaleX(0.1f);

            var display = new GameObject("Title", new Vector2(xCentre, yCentre));
            var font    = FontGraphics.PropertialFont_8X8;

            var textSimpleRpg = new TextComponent(font, "DEFENDER", new Vector2(-xOffset, -yOffset), 2);
            var textEnter     = new TextComponent(font, "PRESS ENTER", new Vector2(-xOffset - 10, yOffset), 2);
            var icon1         = new SpriteComponent(SpaceGraphics.PlayerShipAsset.First(), new Vector2(-xOffset * 2, 0));
            var icon2         = new SpriteComponent(SpaceGraphics.EnemyShipAsset.First(), new Vector2(xOffset * 2, 0));
            var action        = new KeyboardActionComponent(Keys.Enter, Action);

            display.AddComponent(textSimpleRpg);
            display.AddComponent(textEnter);
            display.AddComponent(icon1);
            display.AddComponent(icon2);
            display.AddComponent(action);
            DisplayLayer.AddGameObject(display);
        }