主题:  用lingo控制动画的问题

南山东篱摄螂

职务:普通成员
等级:4
金币:10.0
发贴:1840
注册:2000/10/22 10:31:19
#12001/1/7 20:29:13
我想用lingo来控制一个角色的动画,目的是这样:角色从 A 水平移动到 B,A、B距离是300,时间是5秒。

这个如何精确地控制角色的移动速度呢?



D计划-混沌

职务:管理员
等级:6
金币:15.2
发贴:3528
注册:2007/4/9 9:48:37
#22001/1/8 0:59:46
ON BEGINSPRITE
GLOBAL I
SET I=1
END
on exitFrame me
GLOBAL I
puppetTempo 10
IF I<5*10 THEN
i=i+1
SPRITE(2).LOCH=50+(300/(5*10))*I
END IF
end
puppetTempo 10(一秒十等分) 5*10为五秒



dexn

职务:普通成员
等级:1
金币:1.0
发贴:157
注册:2000/12/7 21:54:20
#32001/1/8 9:30:41
理论上是可以了,不过我觉得puppetTempo 的值会在不同的机器上表现会不一样,很难做到满意的效果,如果puppetTempo不能达到理想的值,当然也就达不到目的了。我对puppetTempo原理不是非常了解,望指正。



donlee

职务:普通成员
等级:1
金币:1.0
发贴:271
注册:2000/12/8 8:52:18
#42001/1/8 13:22:00
我写过一个比较通用的行为,效果不错。tempo越高移动得越流畅,请稍候。



donlee

职务:普通成员
等级:1
金币:1.0
发贴:271
注册:2000/12/8 8:52:18
#52001/1/8 14:14:23
过去写的通用行为不在手边,下面是临时写的,未及测试:

property pOrigX,pOrigTime,pTotaltime
on beginsprite me
pOrigX=sprite(me.spriteNum).locH
pOrigTime=the ticks
ptotaltime=5*60
end

on exitframe me
laptime=the ticks-pOrigTime
newX=pOrigX+min(300,300*laptime/ptotaltime)
sprite(me.spriteNum).locH=newX
end

如果是向其他方向或用其他时间适当修改一下数值就可以了。
更好的情况是用getpropertydescriptionlist,这里就不写了。

编辑历史:[这消息被donlee编辑过(编辑时间2001-01-08 16:33:22)]