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

[作品发布]弹幕引擎LuaSTG v0.04 【2012.1.18更新】

发帖
59
信仰
0
蓝点
73
符卡
0
只看该作者 20楼 发表于: 2011-10-29
     魂淡,弹幕怎么全用TASK写了,让我这个用timer+取余的渣渣情何以堪
至于能不能看懂    反正我是看懂了,task系统好偷懒,各种神棍写法都可以成立啊
另外终于有激光可以用了    
GOLD_PI是个啥常数
  大玉居然是黑心的,不是空心的
说一个BUG,子弹的LAYER比判定点还要高!子弹可以直接盖判定点了,碰到大一点的子弹,根本不知道自机在哪了.....001里木有这种问题
[ 此帖被藤原妹红在2011-10-29 20:01重新编辑 ]
三十个字节能写多少字能写这么多
发帖
82
信仰
1
蓝点
68
符卡
0
只看该作者 21楼 发表于: 2011-10-29
回 20楼(藤原妹红) 的帖子
task在resty大的提醒下用coroutine写的,用起来确实方便不少。另外提醒一句,如果有时候你发现在任务流程函数里访问不了self了,在函数里最前面加一句local self=task.GetSelf()就可以了。
GOLD_PIx2=黄金分割比×2×PI 是一个神奇的数字,对于一圈有n个的子弹,每次发射角度的增量取这个数除以n,可以使每圈子弹尽量错开。
大玉本来就是黑心的,直接用的zun的素材。
判定点被子弹盖住是个bug,因为之前修正一个别的覆盖顺序,不小心把这个搞bug了,已经修正。把data\THlib\player\player.lua 183行改为self.layer=LAYER_ENEMY_BULLET_EF+50即可。
谢谢反馈~
[ 此帖被隔壁的桌子在2011-10-30 00:26重新编辑 ]
发帖
179
信仰
0
蓝点
171
符卡
0
只看该作者 22楼 发表于: 2011-10-31
大玉应该是用的BLEND_ADD的方法绘制的恩

楼主留言:

我观察了一下感觉不是啊,如果是add的话看起来会很亮的,尤其是很多大玉叠在一起的时候,比如妖妖梦的四面楚歌这种。

发帖
59
信仰
0
蓝点
73
符卡
0
只看该作者 23楼 发表于: 2011-10-31
回 21楼(隔壁的桌子) 的帖子
这个激光的碰撞检测写得不够简单导致根本看不懂,L1L2L3是做什么用的        本来是可以一个计算式解决的
TUT09写错了= =你运行试试
时符的判断在哪,整个DEMO看下来都没发现
版面大小是多大,我用了一下发现-224不是版底,是判定点最低位置,离版底远着呢....224也不是版顶,于是4个角神马坐标
VX和VY没预设啊,用SET函数打下去出来的效果也是子弹一动不动......    是因为后面的FRAME函数把前面重定义么,或者是我打开方式不对?

自机子弹弱爆了,居然出屏就消除,我把BOSS的Y坐标设到224就打不到了=  魂淡啊,001完成度还高点
[ 此帖被藤原妹红在2011-11-01 01:35重新编辑 ]
三十个字节能写多少字能写这么多
发帖
82
信仰
1
蓝点
68
符卡
0
只看该作者 24楼 发表于: 2011-11-01
回 23楼(藤原妹红) 的帖子
激光的l1 l2 l3分别是头、身、尾的长度。头和尾是两边尖的部分,身是中间等宽的部分。
tut09应该是删掉的来着,估计是忘记svn commit了。
时符的话,sc在声明的时候,那三个时间取成一样的就是时符,时间也就是这个时间。
有个强制的设定,boss出屏就变成无敌的,追踪弹也不追。
剩下的问题,我认为没有。要不你把有问题的代码发上来看看?
发帖
130
信仰
6
蓝点
114
符卡
0
只看该作者 25楼 发表于: 2011-11-01
我觉得大玉也都是用blend_add最为常见,黑色正好叠一下就没了;
后面散开不够亮,应该是因为其他子弹在大玉之上正常渲染的结果吧
发帖
59
信仰
0
蓝点
73
符卡
0
只看该作者 26楼 发表于: 2011-11-09
  1. sc11b1=Class(bullet)
  2. function sc11b1:init(imgclass,index,stay,x,y)
  3.     self.g=0.01
  4.     bullet.init(self,imgclass,index,stay)
  5.     self.x=x
  6.     self.y=y
  7.     self.vx=ran:Float(-sqrt(288*self.g/7),sqrt(288*self.g/7))
  8.     self.vy=sqrt(4*224*self.g)
  9.     self.rot=ran:Float(0,PI)
  10. end
  11. function sc11b1:frame()
  12.     self.vy=self.vy-self.g
  13.     if self.timer*PI>2*self.rot*4*sqrt(224/self.g) then
  14.         self.class=sc11b2
  15.         self.rot=Angle(self,lstg.player)
  16.         self.d=Dist(self,lstg.player)
  17.         self.timer=0
  18.         self.vx=0
  19.         self.vy=0
  20.         self.img='butterfly3'
  21.         PlaySound('kira00',0.3,0)
  22.     end
  23. end
  24. sc11b2=Class(straight)
  25. function sc11b2:frame()
  26.     if self.timer>120 then
  27.         self.vx=self.d/120*cos(self.rot)
  28.           self.vy=self.d/120*sin(self.rot)
  29.     end
  30. end


这段代码各种神出错  发射一下就知道了
1.提示FADE_BUTTERFLY3找不到,直接定义IMG就会出问题,用IMGCLASS+INDEX目前没出过错
2.子弹生成的地方离版底好远,大玉最明显,中心离版底差了起码30像素
(1)后来目测了一下,生成的时候有速度,生成完了速度就清0了
(2)就算一开始定义的速度就是0,子弹也不会在版底出现,而是在判定点可以到达的最低位置
3.INIT里定义了VX,VY,子弹不动....FRAME里定义的VXVY倒是有效....
[ 此帖被藤原妹红在2011-11-09 17:02重新编辑 ]
三十个字节能写多少字能写这么多
发帖
82
信仰
1
蓝点
68
符卡
0
只看该作者 27楼 发表于: 2011-11-09
回 26楼(藤原妹红) 的帖子
bullet.init要放在init函数的最后调用,中途改img和class也是不行的。
bullet类写的不太合理,我得改一改。
这种特殊的子弹你先自己重新写个类吧,直接从object继承。
发帖
2
信仰
0
蓝点
0
符卡
0
只看该作者 28楼 发表于: 2011-11-20
很感谢楼主发出这么有用的弹幕引擎!!
真的帮了我很大的忙~~

可是有几个问题想请教一下

1.引擎在繁体中文的环境下无法开启.必须使用App转简体才可以正常使用
2.档案似乎不能支援Unicode or UTF8 当档案存成上述格式时游戏完全无法开启
3.BOSS战时FPS只剩下5~8.严重影响游戏进行

请问以上问题该如何解决呢??
发帖
82
信仰
1
蓝点
68
符卡
0
只看该作者 29楼 发表于: 2011-11-20
回 28楼(foole852741) 的帖子
估计是编码的问题吧,你试试修改setting.lua里的charset。或者干脆注释掉data\core.lua里面的函数LoadTTF和RenderTTF。(即让这两个函数变成什么都不做。)
描述
快速回复

您目前还是游客,请 登录注册
批量上传需要先选择文件,再选择上传
认证码: