成就中心 DouJin Terraria! 社区服务 统计排行 帮助
  • 5706阅读
  • 6回复

[制作范例]【LUA】【斑鸠天球仪弱爆了】如何让弹幕转圈

发帖
59
信仰
0
蓝点
73
符卡
0
刚下到LUA就有做转圈弹幕的想法,无奈那时不会控制子弹,只好做点简单的自娱自乐
学会控制子弹了以后第一件事就是做反射弹和NEET的触壁自机狙,于是在SLM发售的前一天,月黑风高的晚上,提前还原了SLM封兽3符 (应该说ZUN的妖怪玉还原了我的弹幕?)
看见神子的天球仪的瞬间:尼玛这不就是我一直想的吗?~!
以上是自娱自乐的黑历史,以下正题:
绕圈?那不是要提前人工算好加速度。。。还要输入角度和距离,投影到XY轴上然后才能输入?
想想都觉得口怕 后来用这种思路输入了一次,果然好长一串
真·正题
LUA让子弹绕原点逆时针转圈,只要如下定义
self.vx=-omiga*self.y
self.vy=omiga*self.x
omiga为预设的角速度,不是绕原点的情况只需要平移
怎么发现的?好吧其实还是手工计算了一次。。。。

以下为root(不要吐槽难度!)
神灵牌天球仪弱爆了.rar (2 K) 下载次数:10
木有LSTGv001的童鞋请猛击这里一同下载本体和ROOT:
http://down.touhou8.com/viewfile.php?file_id=14365
绕圈的方式为
self.vx=-PI^2/t*sin(PI*(self.timer-d-120)/t)*self.y
self.vy=PI^2/t*sin(PI*(self.timer-d-120)/t)*self.x
t为周期,-d-120是修正量,这样设置正好让子弹按简谐振动转了一周(如果时间再长会逆转)
怎么设置的?好吧其实还是积分了一下才得出PI^2/t*sin(PI*(self.timer-d-120)/t)这样的角速度变化
比起ZUN的斑鸠天球仪,代码上肯定是复杂了,运动也好得多,为什么总是看着不给力呢?一句话:
教练我想要高光渲染!
画外音:SLM就是神主用华丽的特效和渲染掩盖弹幕创意不足的产物。

[ 此帖被藤原妹红在2011-08-15 07:24重新编辑 ]
本帖最近评分记录: 1 条评分 蓝点 +5 隐藏
萃香西瓜 蓝点 +5 2011-08-15 积分美~
三十个字节能写多少字能写这么多
发帖
130
信仰
6
蓝点
114
符卡
0
只看该作者 沙发  发表于: 2011-08-15
好计算~后面还有从自机身上冒出来的奇怪的子弹

也可以尝试换个思路
比如说用极坐标(速度、速度方向)来表示子弹的运动,代替直角坐标下的横速度、纵速度,在这种变向/圆周类的运动上或许计算会简便一些

或者直接不要速度了,用距离+角度每帧直接算出x/y坐标(泛用性差劲)

自己也尝试了一下极坐标下的实现,直接在lz的基础上改的,见附件
附件: debug.rar (43 K) 下载次数:19
发帖
59
信仰
0
蓝点
73
符卡
0
只看该作者 板凳  发表于: 2011-08-16
回 1楼(萃香西瓜) 的帖子
有子弹的图像真方便- -
本来还在疑问子弹怎么设置成出屏不消除,一看你的发现整个都重定义了,怪不得出屏不消除。。。。
三十个字节能写多少字能写这么多
发帖
130
信仰
6
蓝点
114
符卡
0
只看该作者 地板  发表于: 2011-08-16
自带的子弹类也能够设定出屏不消除吧,bound属性设置为false看看

自己用object而不是bullet,主要是因为不知道bullet类的那个图像该怎么传……是不是要用LoadImageGroup来的

另:神灵庙这次的创意依然很足啊
发帖
82
信仰
1
蓝点
68
符卡
0
只看该作者 4楼 发表于: 2011-08-16
vx和vy不是内建属性,你这种情况可以不管他,直接给x和y赋值好了。子弹出屏幕不消改bound属性为false就行了,如西瓜所说。高光渲染用SetImageState函数,把blendmode设置为BLEND_ALPHAADD。
发帖
82
信仰
1
蓝点
68
符卡
0
只看该作者 5楼 发表于: 2011-08-16
回 3楼(萃香西瓜) 的帖子
bullet的定义以及其他各种东西的定义都在data的stdlib里。
发帖
3
信仰
0
蓝点
0
符卡
0
只看该作者 6楼 发表于: 2011-11-30
做过弹幕游戏  表示对旋转的弹幕很无力~
描述
快速回复

您目前还是游客,请 登录注册
如果您提交过一次失败了,可以用”恢复数据”来恢复帖子内容
认证码: