Exemple #1
0
        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);
        }
Exemple #2
0
        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;
        }
Exemple #3
0
        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));
        }
Exemple #4
0
        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)));
            }
        }