示例#1
0
        public override void FrameProc(IStateOwner pOwner)
        {
            StandardImageBackgroundDrawSkiaCapsule dd = Data;

            if (dd == null)
            {
                return;
            }
            if (dd.BackgroundBrush == null)
            {
                dd.ResetState(new SKRect(0, 0, pOwner.GameArea.Width, pOwner.GameArea.Height));
            }
            if (dd.BackgroundBrush == null)
            {
                return;
            }

            if (!dd.Movement.IsEmpty)
            {
                dd.CurrOrigin = new SKPoint((dd.CurrOrigin.X + dd.Movement.X) % dd._BackgroundImage.Width, (dd.CurrOrigin.Y + dd.Movement.Y) % dd._BackgroundImage.Height);
            }

            if (dd.AngleSpeed > 0)
            {
                dd.CurrAngle += dd.AngleSpeed;
            }
            dd.BackgroundBrush.ImageFilter = SKImageFilter.CreateOffset(dd.CurrOrigin.X, dd.CurrOrigin.Y, dd.PrimaryFilter);

            //might need to do something weird for tiling.
        }