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