作者nxlmoz (梦到母马)
看板RPGMaker
标题[游戏] 椭圆形移动范例
时间Mon Dec 4 01:47:04 2006
http://nxlmoz.myweb.hinet.net/123.rar
点以上连结下载档案
使用说明:
跟狗对话可以进行半径的修改
图片会自行移动
这是前几天无聊自己研究的
经过几次的修改
1.可以设定椭圆半径,但两个半径平方相乘不可以超过6位数(超过会产生幽浮状的移动)
2.椭圆跟随主角
3.这是以我的技术无法解决的问题
因为是用X轴增减做椭圆的判定,所以当Y轴升降的太快,图片移动也会跟着变快
我把我的想法PO出来 希望可以讨论出更好的作法@_@
椭圆形的公式是[(X-a)^2]/x^2 + [(Y-b)^2]/y^2 =1
但是直接这样做
当[(X-a)^2]除以x^2的时候
数值会太小
因此把式子改成y^2[(X-a)^2] + x^2[(Y-b)^2] =y^2*x^2
接下来就容易的多了
设定圆心 x半径 y半径
假设=(160.120) 20 30
那麽x轴移动就会在140~180之间
首先搞定正负的问题
设个分歧条件 当x更大於180 改为减x
当x更小於140 改为增x
以上这样做 只会画出半圆
因此加上个开关1
当开关1为开 用圆心-y 开关1为关 用圆心+y
接着就是主菜了
先把x起始值设为140
y^2[(X-a)^2] + x^2[(Y-b)^2] =y^2*x^2
式一:x-160之後再平方 然後乘y直径的平方
式二:用y^2*x^2去减式一
式三:用式二除以x平方
接着我们要用乘除来做开根号的动作
先设一个反覆处理
变数h+1
然後条件分歧当h的平方大於式三
则跳出反覆处理(可以使用标记的方式)
此时可以得到y-b=h
接着当开关1为开 用圆心-y 开关1为关 用圆心+y
如此可做出一个定点旋转 椭圆形大小固定的效果
当以上都成功了 则可以进阶改成自由设定椭圆大小
或是以主角为圆心旋转的功能
之前看过枪神9的弧形图片移动 原本一直想不出作法
但以同样的方法带不同的公式进去也是行的通的
此效果应用:跟在主角身旁的精灵、防护罩等等
ps:牛身上的指令串已经被我改的很乱了...连我自己都看不太懂
如果制作上有遇到问题 可以在这回文问我@_@
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 59.112.4.93