public Cursor(Texture2D cursor, Camera camera) : base() { var sprite = new SpriteStatic(this, cursor); var renderer = new SpriteRenderer(); renderer.Sprites.Add(sprite); this.AddComponent(renderer); this.camera = camera; this.Scale = new Vector2(0.5f, 0.5f); }
public Inventory(Texture2D inventoryTile, int sizeX, int sizeY) { this.spriteRenderer = new SpriteRenderer(); for (var y = 0; y < sizeY; y++) { for (var x = 0; x < sizeX; x++) { var sprite = new SpriteStatic(this, inventoryTile, null, new Vector2(x, y)); spriteRenderer.Sprites.Add(sprite); } } this.AddComponent(spriteRenderer); this.spriteRenderer.Active = false; }
public Player(DungenonTilesetII0x72Loader content, Texture2D characterShadow) { var spriteRenderer = new SpriteRenderer(); this.AddComponent(spriteRenderer); var idleCoord = content.TryGetSpriteCoordinates("knight_m_idle_anim"); var height = (float)idleCoord[0].Height; var width = (float)idleCoord[0].Width; if (height > width) { height = height / width; width = 1; } else if (width > height) { width = width / height; height = 1; } this.characterAnimator = new SpriteAnimator(this, new[] { new SpriteAnimation("idle", content.Texture, idleCoord), new SpriteAnimation("run", content.Texture, content.TryGetSpriteCoordinates("knight_m_run_anim")), new SpriteAnimation("hit", content.Texture, content.TryGetSpriteCoordinates("knight_m_hit_anim")) }, "idle"); this.characterAnimator.Scale = new Vector2(width, height); this.characterAnimator.RenderPivot = RenderPivot.BottomCenter; var shadowSprite = new SpriteStatic(this, characterShadow, null, new Vector2(0, 0f), RenderPivot.Center); spriteRenderer.Sprites.Add(shadowSprite); spriteRenderer.Sprites.Add(characterAnimator); var collider = new BoxCollider(0, new Vector2(1, 0.4f), new Vector2(-0.5f, -0.4f)); this.AddComponent(collider); this.AddComponent(this.rigidbody = new Rigidbody(collider)); }
public LevelTile(Content.Loader.MapTile mapTile, Texture2D mapTextureAtlas) : base() { this.Position = mapTile.Position; this.Position.Y = this.Position.Y + mapTile.YOffset; var spriteRenderer = new SpriteRenderer(); this.AddComponent(spriteRenderer); Sprite sprite; if (mapTile.TilesetTile.IsAnimated) { var rectangles = new Rectangle[] { mapTile.TilesetTile.Rectangle } .Concat(mapTile.TilesetTile.AnimationList.Select(a => a.TilesetTile.Rectangle)) .ToArray(); sprite = new SpriteAnimator(this, new SpriteAnimation[] { new SpriteAnimation("default", mapTextureAtlas, rectangles) }, "default"); sprite.RenderPivot = RenderPivot.BottomCenter; } else { sprite = new SpriteStatic(this, mapTextureAtlas, mapTile.TilesetTile.Rectangle, null, RenderPivot.BottomCenter); } sprite.OffsetPosition = new Vector2(0, -mapTile.YOffset); spriteRenderer.Sprites.Add(sprite); foreach (var boxColliderDefinition in mapTile.TilesetTile.BoxColiderDefinitions) { this.AddComponent(new Engine.Physics.BoxCollider(1, boxColliderDefinition.Size, boxColliderDefinition.Position - new Vector2(0.5f, 1) - new Vector2(0, mapTile.YOffset))); } }