Exemplo n.º 1
0
        protected virtual void Tick()
        {
            if (_brush == null)
            {
                return;
            }

            var width  = _brush.Cells.Length;
            var height = _brush.Cells[0].Length;

            for (var x = 0; x < width; x++)
            {
                for (var y = 0; y < height; y++)
                {
                    var cell  = _brush.Cells[x][y];
                    var image = this._images[x * height + y];

                    var location = cell.tile.Sprite.CurrentFrame.SheetLocation;

                    var source = SpriteBitmapCache.GetOrLoadFrame(cell.tile.Sprite.SheetPath.Absolute, location);
                    source = SpriteBitmapCache.Scale(source, Zoom);

                    image.Source = source;
                    image.InvalidateVisual();
                }
            }
        }
Exemplo n.º 2
0
        public override WriteableBitmap GetImageSource(double zoom)
        {
            var scaledOverlay = SpriteBitmapCache.Scale(_overlay, zoom);
            var spriteImg     = BitmapFactory.ConvertToPbgra32Format(base.GetImageSource(zoom));
            var centerX       = (spriteImg.Width - scaledOverlay.Width) / 2;
            var centerY       = (spriteImg.Height - scaledOverlay.Height) / 2;
            var destRect      = new System.Windows.Rect(centerX, centerY, scaledOverlay.Width, scaledOverlay.Height);

            spriteImg.Blit(destRect, scaledOverlay, new System.Windows.Rect(0, 0, scaledOverlay.Width, scaledOverlay.Height));

            return(spriteImg);
        }
Exemplo n.º 3
0
        public virtual WriteableBitmap GetImageSource(double zoom)
        {
            var location = _sprite.CurrentFrame.SheetLocation;

            var image = SpriteBitmapCache.GetOrLoadFrame(_sprite.SheetPath.Absolute, location);

            if (zoom != 1)
            {
                image = SpriteBitmapCache.Scale(image, zoom);
            }

            return(image);
        }
Exemplo n.º 4
0
        protected override void OnRender(DrawingContext dc)
        {
            base.OnRender(dc);

            var image = SpriteBitmapCache.GetOrLoadFrame(_playerSprite.SheetPath.Absolute, _playerSprite.CurrentFrame.SheetLocation);

            image = SpriteBitmapCache.Scale(image, this.Zoom);

            if (Screen.Name == Screen.Stage.StartScreen)
            {
                var p = Screen.Stage.StartPoint;
                dc.DrawImage(image, new System.Windows.Rect(Zoom * (p.X - _playerSprite.HotSpot.X), Zoom * (p.Y - _playerSprite.HotSpot.Y), image.PixelWidth, image.PixelHeight));
            }

            if (Screen.Stage.ContinuePoints.ContainsKey(Screen.Name))
            {
                var p = Screen.Stage.ContinuePoints[Screen.Name];
                dc.DrawImage(image, new System.Windows.Rect(Zoom * (p.X - _playerSprite.HotSpot.X), Zoom * (p.Y - _playerSprite.HotSpot.Y), image.PixelWidth, image.PixelHeight));
            }
        }