作者KawasumiMai (魔物を讨つ者)
看板Flash
标题Re: [问题] 物件依时间倒数 移动、旋转
时间Wed Oct 26 09:24:22 2011
※ 引述《royhsu (SAW)》之铭言:
: 原始档:http://www.mediafire.com/?jp8xwy6c3ov08xc
: 请问一下 如果想制作时间倒数 同时有个物件依时间进行移动
: 假设 要从A点 移动到 B点 ((这个距离时固定的))
: 但希望从A出发 到达B点的时候 刚好时间倒数完毕
: 也就是说 能用时间来控制它移动的量
: 在时间归零归零的同时 到达B点
: ---------------------------------
: 目前我只会做到"时间倒数",移动的问题就.......
: 请各位高手帮帮我,谢谢大家~
1F:→ KawasumiMai:在下会直接算BA向量然後总长*秒数比*三角函数...10/25 18:19
2F:→ royhsu:K大~给个范例~教导一下~又要麻烦你了 谢谢~10/26 02:11
这个应该是高中的范围吧
比较需要注意的是AS好像是使用径度
假设有个
A点在(0,0)
B点在(640,480)
然後要在86400秒跑完(一天)
先计算出AB距离
((b.x-a.x)^2+(b.y-a.y)^2)^0.5
然後算出A的俯角
tanθ=(b.y-a.y)/(b.x-a.x)
θ就是atan( (b.y-a.y)/(b.x-a.x) )
然後因为距离是((b.x-a.x)^2+(b.y-a.y)^2)^0.5
要花86400秒跑完
所以每秒要跑((b.x-a.x)^2+(b.y-a.y)^2)^0.5 / 86400
因为有角度,决定方向
所以只要每秒钟:
a.x+=((b.x-a.x)^2+(b.y-a.y)^2)^0.5 / 86400 * cos( atan( (b.y-a.y)/(b.x-a.x) ) )
a.y+=((b.x-a.x)^2+(b.y-a.y)^2)^0.5 / 86400 * sin( atan( (b.y-a.y)/(b.x-a.x) ) )
写成as大概就距离跟角度先计算好变成常数
然後每秒执行的function内就那两行把距离跟秒数还有角度替代进去
至於径度就自己用Math.PI换算
还有注意scaleX导致对称的问题之类的
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.121.210.139
3F:推 etrexetrex:感觉这样算有点多余了 10/26 14:16
4F:推 royhsu:推~~~~ 10/26 15:09