我正试图让一个跑步的人动起来:
第1至第5帧=男子倾向于奔跑。 框架6到15 =人跑一步
frame = 1
frame +=1 //frames progress forwards at rate of 1 frame
function run(){
if(frame>15){ //at frame 15: man has completed leaning into run and completed one 'running' cycle
frame -=2 //frames now start to go backwards at rate of (1-2=)-1 frame
if(frame<6){ //until they reach frame 6 (beginning of running animation)
frame +=2 //frames start to progress forwards again at rate of (2-2+1=)+1 frame again
我的方法非常糟糕,似乎只能在15到6之间前进然后向后。
有谁知道如何无限期地在这两个数字之间反弹?
答案 0 :(得分:6)
在达到frame = 15并开始向下行程之后,你会遇到一个条件(14),你的IF语句都不是真的。所以你的框架既不增加也不减少。卡住。
一个可能更好的解决方案是维护一个名为myDirection的变量,该变量在1和-1之间定期切换。也就是说,当你点击15时设置myDirection = -1,当你点击6时设置myDirection = 1.然后,你的迭代语句总是可以说frame = frame + myDirection
并且它总会做某事 - 你永远不会无所事事。
答案 1 :(得分:2)
好的,所以使用LesterDove的+ schnaader我管理的有用提示:
int step=1
function run(){
frame += step
if(frame>15){ step = -1}
if(frame<6){ step = 1}
}
它很有用。再次感谢!