|
主题: 新手提问:请问Timer能控制精灵的行为吗
|
sarading
职务:普通成员
等级:1
金币:0.0
发贴:5
|
#12004/6/10 8:24:08
各位好,本人刚刚学习director,前日写了一段lingo: property pSprite
on beginSprite me pSprite = sprite(6) end
on mouseUp me steps = 40 delta = (104 - pSprite.locH)/steps repeat with i = 1 to steps pSprite.locH = pSprite.LocH + Delta--实现精灵平移 updatestage end repeat startTimer--想在这部分实现精灵自动回撤,可是实际没有反应 if the timer = 12 then pSprite.locH = pSprite.locH- Delta * steps updatestage end if end
on endSprite me pSprite.locH = pSprite.locH-104 end
请问各位,我这个想法错了吗,有什么办法实现呀,谢谢!
|
Super ChiCk
职务:版主
等级:5
金币:15.0
发贴:3502
|
#22004/6/10 14:24:51
你这段代码最大的问题就是on mouseup只能执行一次,这个时候开始timer,你在后面写的判断条件timer=12达不到,应该写在on exitframe 里面starttimer后timer才能=12
|
Super ChiCk
职务:版主
等级:5
金币:15.0
发贴:3502
|
#32004/6/10 14:55:13
还有就是这样写即使写对了,你的精灵也是一瞬间移动过去,然后再移动回来,因为你用的循环不正确,如果想要实现逐步移动需要将移动的程序写在exitframe里面,
|
Super ChiCk
职务:版主
等级:5
金币:15.0
发贴:3502
|
#42004/6/10 14:57:24
delta = (104 - pSprite.locH)/steps 还有就是数据类型问题,这个程式,得出的是一个整数,如果104-pSprite.locH<steps的话,delta就是0 delta = (104 - pSprite.locH)/float(steps) 这样就不会出问题了
|
Super ChiCk
职务:版主
等级:5
金币:15.0
发贴:3502
|
#52004/6/10 14:58:09
delta = (104 - pSprite.locH)/steps 还有就是数据类型问题,这个程式,得出的是一个整数,如果104-pSprite.locH<steps的话,delta就是0 delta = (104 - pSprite.locH)/float(steps) 这样就不会出问题了
|
sarading
职务:普通成员
等级:1
金币:0.0
发贴:5
|
|