C# Silverlight中的精灵表动画
我正在尝试用C#在Silverlight中为一张精灵表设置动画。 我已经取得了很大的进步,动画正在工作,但问题是它们在不同的工作表之间不一致。例如,我有以下3张纸: 前两个动画制作得很好,但当最后一个动画制作时,我会看到其他帧的部分,如下所示: 这是我用来制作图纸动画的代码:(宽度和高度是我之前确定的特定帧的尺寸)C# Silverlight中的精灵表动画,c#,silverlight,animation,windows-phone-8,C#,Silverlight,Animation,Windows Phone 8,我正在尝试用C#在Silverlight中为一张精灵表设置动画。 我已经取得了很大的进步,动画正在工作,但问题是它们在不同的工作表之间不一致。例如,我有以下3张纸: 前两个动画制作得很好,但当最后一个动画制作时,我会看到其他帧的部分,如下所示: 这是我用来制作图纸动画的代码:(宽度和高度是我之前确定的特定帧的尺寸) 我希望有人能帮助我,并提前表示感谢。您的动画代码使用width in参数了解如何裁剪精灵: dokf.Value = -(i * parameters.Width); 伪瓷
我希望有人能帮助我,并提前表示感谢。您的动画代码使用width in参数了解如何裁剪精灵:
dokf.Value = -(i * parameters.Width);
伪瓷砖集宽1365像素,共9帧。因此,您需要将宽度设置为1365/9=151像素。我认为问题在于图像本身。我试着用相同的宽度画出每一帧的边框,但这是不可能的 我尝试了233像素的宽度: 151像素(KooKiz建议)也不起作用: 因此,我修改了整个图像,剪切了所有帧,设置了一个宽度(181像素),然后再次合并它们。这就是结果: 这是我的解决办法。使用下面的图像(您知道,右键单击,另存为…)并将帧宽度设置为181像素:
有趣的事实:图像的高度是170像素,而不是218…您使用什么参数来调用
动画方法?问题很可能就在这里,我从数据库中获得了,例如,对于这张特定的表(错误的那张),我使用宽度=233,高度=218,帧数=9为什么您将高度设置为218,而图像只有170?无需居高临下,因为我使用pokit从屏幕上剪切图像,所以它给了您170的高度。218是真正的高度,现在没事了。
public class AnimationParams
{
public BitmapImage Sheet { get; set; }
public int Width { get; set; }
public int Height { get; set; }
public int NumberOfFrames { get; set;}
public bool IsStatic { get; set; }
public bool Loop { get; set; }
public int Repetitions { get; set; }
public AnimationParams(BitmapImage sheet, int width, int height, int numberOfFrames, bool isStatic, bool loop = false, int repetitions = 1) {
Sheet = sheet;
Width = width;
Height = height;
NumberOfFrames = numberOfFrames;
IsStatic = isStatic;
Loop = loop;
Repetitions = repetitions;
}
}
dokf.Value = -(i * parameters.Width);