作者bill (太极狂龙)
看板RPGMaker
标题Re: [游戏] 椭圆形移动范例
时间Tue Dec 5 21:22:58 2006
档案我是用RM2K3打开的,没办法看到事件的外观,只能用编号表示。
1.EV0005的那两行移到EV0002前面,
少开一个事件"也许"可以省一点记忆体。
2.关於光点位置的演算法我有个点子但没验证过,姑且听听好了
I.计算光点位置
px = A * cos(θ) + hx
py = B * sin(θ) + hy
px = 光点的X座标
py = 光点的Y座标
hx = 主角的X座标
hy = 主角的Y座标
θ = 光点的θ座标
A = 椭圆路径的X方向半径
B = 椭圆路径的Y方向半径
II.移动光点,每frame执行一次
θ = θ + ω
ω = 光点移动的角速度
在RM2K中的实作方法
1.找三个变数代表A、B、ω值,开个自动执行事件输入数值,大小随便定
2.开一个定期并列处理的事件,事件内容:
.将主角的XY座标存成变数hx、hy
.计算cos(θ)和sin(θ)
.计算px = A * cos(θ) + hx和py = B * sin(θ) + hy
.将图片移动到座标(px,py)
.将θ加上ω
其中最大的问题是cos(θ)和sin(θ)的计算
RMXP中有内建函数可以用
但在RM2K里怎麽办?
嗯...可以用查表的。
事先算好cos(0.1)、cos(0.2)......的值代入变数中
计算时则用内插法求值
RM2K不支援小数点,可在计算过程中把所有的变数值乘
上1000,最後再把答案除回去,可以保持一些精度
只是得小心数值太大会爆掉
不知道能不能用,参考看看。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 59.117.67.28