Example #1
0
        private GameObject BuildPlayer()
        {
            var player = new GameObject();

            var spriteSheet = _assetsResolver.Get <SpriteSheet>("assets/sheet.json");
            var sprite      = spriteSheet.Get("playerShip2_green.png");

            var playerTransform = player.Components.Add <TransformComponent>();

            playerTransform.Local.Position.X = _canvas.Width / 2;
            playerTransform.Local.Position.Y = _canvas.Height / 2;

            var playerSpriteRenderer = player.Components.Add <SpriteRenderComponent>();

            playerSpriteRenderer.Sprite = sprite;

            var bbox = player.Components.Add <BoundingBoxComponent>();

            bbox.SetSize(sprite.Bounds.Size);

            var rigidBody = player.Components.Add <MovingBody>();

            rigidBody.MaxSpeed = 400f;

            player.Components.Add <PlayerBrain>();

            return(player);
        }
Example #2
0
        private GameObject BuildBackground()
        {
            var background = new GameObject();

            var sprite = _assetsResolver.Get <Sprite>("assets/backgrounds/blue.png");

            var transform = background.Components.Add <TransformComponent>();

            if (this.Game.Display.Size.Width > sprite.Bounds.Width)
            {
                transform.Local.Scale.X = 2f * (float)this.Game.Display.Size.Width / sprite.Bounds.Width;
            }
            if (this.Game.Display.Size.Height > sprite.Bounds.Height)
            {
                transform.Local.Scale.Y = 2f * (float)this.Game.Display.Size.Height / sprite.Bounds.Height;
            }

            var renderer = background.Components.Add <RectRenderComponent>();

            renderer.Sprite        = sprite;
            renderer.RepeatPattern = RepeatPattern.Repeat;
            renderer.LayerIndex    = (int)RenderLayers.Background;

            return(background);
        }
Example #3
0
        public static async ValueTask <AssetsGame> Create(BECanvasComponent canvas, IAssetsResolver assetsResolver)
        {
            var context = await canvas.CreateCanvas2DAsync();

            var game = new AssetsGame(context, assetsResolver);

            var fpsCounter = new GameObject();

            fpsCounter.Components.Add <FPSCounterComponent>();
            game._sceneGraph.Root.AddChild(fpsCounter);

            var player          = new GameObject();
            var playerSprite    = assetsResolver.Get <Sprite>("assets/playerShip2_green.png");
            var playerTransform = player.Components.Add <TransformComponent>();

            playerTransform.Local.Position.X = canvas.Width / 2 - playerSprite.Size.Width;
            playerTransform.Local.Position.Y = canvas.Height - playerSprite.Size.Height * 2;
            var playerSpriteRenderer = player.Components.Add <SpriteRenderComponent>();

            playerSpriteRenderer.Sprite = playerSprite;
            game._sceneGraph.Root.AddChild(player);

            var enemy          = new GameObject();
            var enemySprite    = assetsResolver.Get <Sprite>("assets/enemyRed1.png");
            var enemyTransform = enemy.Components.Add <TransformComponent>();

            enemyTransform.Local.Position.X = canvas.Width / 2 - enemySprite.Size.Width;
            enemyTransform.Local.Position.Y = enemySprite.Size.Height * 2;
            var enemySpriteRenderer = enemy.Components.Add <SpriteRenderComponent>();

            enemySpriteRenderer.Sprite = enemySprite;
            game._sceneGraph.Root.AddChild(enemy);

            var rand = new Random();

            for (var i = 0; i != 6; ++i)
            {
                AddAsteroid(game, canvas, assetsResolver, rand);
            }

            return(game);
        }
Example #4
0
        private static void AddAsteroid(AssetsGame game, BECanvasComponent canvas, IAssetsResolver assetsResolver, Random rand)
        {
            var asteroid = new GameObject();

            var sprite = assetsResolver.Get <Sprite>("assets/meteorBrown_big1.png");

            var transform = asteroid.Components.Add <TransformComponent>();

            transform.Local.Position.X = rand.Next(sprite.Size.Width * 2, (int)canvas.Width - sprite.Size.Width * 2);
            transform.Local.Position.Y = rand.Next(sprite.Size.Height * 2, (int)(canvas.Height / 4) * 3);

            var spriteRenderer = asteroid.Components.Add <SpriteRenderComponent>();

            spriteRenderer.Sprite = sprite;

            asteroid.Components.Add <AsteroidBrainComponent>();

            game._sceneGraph.Root.AddChild(asteroid);
        }
Example #5
0
        private void InitCursor()
        {
            var cursor = new GameObject(this);

            cursor.Components.Add <TransformComponent>();

            var renderer    = cursor.Components.Add <SpriteRenderComponent>();
            var spriteSheet = _assetsResolver.Get <SpriteSheet>("assets/tilesets/dungeon4.json");

            renderer.Sprite     = spriteSheet.GetSprite("cursor-x");
            renderer.LayerIndex = (int)RenderLayers.UI;

            var brain = cursor.Components.Add <CursorBrainComponent>();

            brain.WalkableSprite  = spriteSheet.GetSprite("cursor");
            brain.ForbiddenSprite = spriteSheet.GetSprite("cursor-x");
            brain.SelectionSprite = spriteSheet.GetSprite("cursor-sel");

            this.Root.AddChild(cursor);
        }