以下行为可以在Director直接复制使用,本行为功能在于可以定时控制精灵移动,还可以设定随机时间移动,很简易地设置精灵在不同时间进场的效果。行为虽可行,但本人觉得有些程序设计方面还不够简练,对系统还要一定的要求,现请各位高手帮忙研究和优化,小弟感激不尽。希望大家能在行为方面多分享交流,谢谢。
----------------------------CopyRight By
www.ShowMe.com.cn & Zooi .2003.04.17----------------------
property sn,eH,eV,hF,vF,h,v,fadeH,fadeV,cMove,gTime,sTime,xTime
property sH,sV,acc,fade
on getPropertyDescriptionList
option =[:]
addprop option,#gTime,[#comment:"设定进场延迟时间:",#format:#string,#default:0]
addprop option,#xTime,[#comment:"时间是否随机,请设定(初始时间,随机时间)",#format:#boolean,#default:false]
addprop option,#sH,[#comment:"设定相对位移X轴坐标:",#format:#string,#default:0]
addprop option,#sV,[#comment:"设定相对位移Y轴坐标:",#format:#string,#default:0]
addprop option,#acc,[#comment:"加速度:",#format:#string,#default:5]
addprop option,#fade,[#comment:"是否要淡入效果:",#format:#boolean,#default:false]
return option
end
on beginSprite me
sn=me.SpriteNum
if fade then Sprite(sn).blend=0
if sh>0 then
h=-1
else
h=1
end if
if sh=0 then h=0
if sV>0 then
V=-1
else
V=1
end if
if sV=0 then V=0
eH=Sprite(sn).locH
eV=Sprite(sn).locV
Sprite(sn).loch=Sprite(sn).loch+sH
Sprite(sn).locV=Sprite(sn).locV+sV
hF=Sprite(sn).locH
vF=Sprite(sn).locV
if xTime=true then
if gTime.item.count<2 then
alert "True标准格式(基本时间,随机时间),False(基本时间)"
return
end if
gTime=gTime.item[1]+string(random(gTime.item[2]*100)/string(100))
else
-- gTime=gTime
end if
fadeH=100
fadeV=100
cMove=1
sTime=the ticks
end
on prepareframe me
if cMove=0 then return
if the ticks-sTime<=gTime*60 then return
if (abs(eV-Sprite(sn).locV))<=0 and (abs(eH-Sprite(sn).locH))<=0 then cMove=0
newRect=sprite(sn).rect.offset(((eH-Sprite(sn).locH)/string(acc)+0.4*h), ((eV-Sprite(sn).locV)/string(acc)+0.4*v))
sprite(sn).rect=newRect
if fade then
if sH<>0 then fadeH=integer((Sprite(sn).locH-hf)/string((eH-hf))*100)
if sV<>0 then fadeV=integer((Sprite(sn).locV-Vf)/string((eV-vf))*100)
if integer((fadeH+fadeV)/2)<=100 then
Sprite(sn).blend=integer((fadeH+fadeV)/2)
end if
end if
end
----------------------------CopyRight By
www.ShowMe.com.cn & Zooi .2003.04.17----------------------