有什么办法可以在sfml中创建一个动画,不是用spriteheets.而是用1个矩形去另一个位置。https:/gyazo.com0952a960bd7f9e5c9c5e1fe71d0f0b45。我想做一个类似于这样的打孔效果.但我不知道从何下手。
有没有办法在sfml中制作一个平滑的动画?
最优雅的方法是用sprite sheets,但也可以不用,做一个for循环,移动矩形的位置,然后再返回。
float smoothness //try for your values
float directionX; //if negative punch left set values 1 or -1
float directionY; //if negative punch down set values 1 or -1
int reach;
for(int i=0;i<reach;i++)
{
rect.setPosition(
directionX*(rect.getPosition.x+smoothness)
,directionY*(rect.getPosition.y+smoothness))
}
//return to original position
for(int i=0;i<reach;i++)
{
rect.setPosition(
-directionX*(rect.getPosition.x+smoothness)
,-directionY*(rect.getPosition.y+smoothness))
}
注意:请设置一个恒定的帧率以使其正常工作。 请设置一个恒定的帧率,以使其正常工作。
你可以缩放矩形来获得这样的效果。你可能希望缩放它的长度比它的宽度更多,以获得类似于你发布的例子。
要对该比例进行动画,每次只缩放一点(每次updatetimestep或tickframeloop缩放一次),直到它达到较大的比例,然后将其比例返回到原来的大小。
你可以不缩放,而是直接设置大小。
你也可以根据开始和结束时间在两个大小或比例尺之间进行插值。