华丽弹幕游戏中子弹运动引擎的
与实现
华丽弹幕游戏中子弹运动引擎的设计与实
现
第3O卷第8期
2009年8月
井冈山学院(自然科学)
JournalofJinggangshanUniversity(Scienceand1hn0logy)
Vo】-3ONo.8
Aug.2009
华丽弹幕游戏中子弹运动引擎的设计与实现
熊师,喻一凡,谭云兰,夏洁武,唐卫东
(井冈山大学信息科学与传媒学院,江西吉安343009)
【摘要】一个弹幕游戏效果绚丽与否,主要看对子弹群的运动轨迹安排是否得当,各种子弹样式的搭配是否合理.
经过实验对比,构造出运动轨迹模型参数方程来控制直线子弹链,环形子弹链,曲线型子弹链的运动轨迹.此外
还设计圆形,星型,泡泡状,直线型(如激光),方形等不同形状的子弹和不同色彩的花纹,再配合粒子系统和纹
理动画来营造动感绚丽效果.应用DirectX9的组件技术实现游戏的快速显示,使游戏场景播放更流畅,更平滑,
更生动.
【关键词】弹幕游戏;子弹链;子弹运动引擎
【中图分类号】TP393【文献标识码】B[文章编号】1673—4718(2009)08,0037一o3
0引言
弹幕类游戏是指类似《雷电》的游戏类型是一
种纯操作游戏,其特征是满屏的子弹+智能型的敌
人+超豪华的攻击方式+快速操控.这类游戏主要是
靠其自身操控上的挑战性,绚丽的画面和美妙的音 乐来吸引玩家的.国内目前的弹幕类游戏大多是由 FLASH制作小型游戏,散播在网络之间,其质量和 效果都远远不能和目前处于领先水平的日本《东 方》系列相比较.日本的神主ZUN凭一己之力开发 的《东方》系列,其中的游戏角色也早已走出游戏, 成为广受追捧的游戏偶像.国内的弹幕游戏制作者 非常少,弹幕类游戏编程资源严重缺乏,我们的目 标是朝着日本的游戏制作水平迈进.现在的商业游 戏开发已经离不开游戏引擎,使用游戏引擎来开发 游戏,可以大幅缩减游戏制作的时间,使游戏设计 者可以更加专注于游戏的创意与设计,而不是一些 烦琐的技术细节.
一
个弹幕类游戏需要渲染引擎,用户控制引 擎,时间控制引擎,场景管理引擎,碰撞检测引擎, 子弹链运动引擎,剧情控制引擎等多个相应的引擎 模块来实现【1.3),而弹幕游戏效果绚丽与否,主要看对 子弹群的运动轨迹安排是否得当,各种子弹样式的 搭配是否合理.所以要想开发出一款比较华丽的弹 幕游戏产品,子弹链运动引擎的设计显得特别重要. 1子弹运动引擎的设计与实现
1.1运动轨迹模型的设计
弹幕类游戏特色就在于它的节奏,不同于寻常 射击游戏那种争分夺秒的紧张感,也没有要迫切消 灭敌人的疯狂射击.此类游戏的精髓就在于"擦弹" 二字,以毫厘之差闪过铺天盖地的子弹,在看似水 泄不通的敌群之间找出一条安全路径才是游戏高 手惯用的模式.子弹链的运动轨迹设计非常重要,
经过实验对比,挑选出如下参数方程来控制子弹的 运动轨迹,效果更好,子弹链的运动轨迹模型参数 方程如下:
y=Rsi
?
n0嚣+yo?l,
(1)中(o,yo)是子弹的初始位置,R是子弹的运动半 径.0是子弹的发射角度.
1.2弹幕游戏中子弹链运动轨迹设计
屏幕上子弹数量的多少会导致游戏节奏上的 变化,当成片子弹中空隙的偶尔出现,将给全神贯 注闪避并打击敌人的玩家以全心的视觉和操作 享受,并挑战玩家的操作极限.弹幕游戏是一种对 操作要求较高的游戏,但是还是属于一种二维游 戏,这种游戏主要是依靠玩家控制自己的角色在躲 避对方子弹的同时发射子弹射击对方.尽管弹幕游 戏具有绚丽的视觉冲击,子弹链运动轨迹有多种形 状,但归纳起来只有直线子弹链,环形子弹链,曲线 型子弹链等几种,下面分别介绍.
1.2.1直线型子弹链运动轨迹只要发射时给8 一
个定值和给每个子弹发射间隔时间SpaeeTime一 个定值,并且不断地改变运动半径的值就可以实 现子弹链的直线运动轨迹,如图1所示. 收稿日期:2009_o6-o8
基金项目:江西省教育厅十一五规划课题(08YB073),校级大学生创新性实验计划
项目.
作者简介:熊师(1989-),男,江西新建人,在读学生,主要从事C程序开发,Photoshop
平面设计工作,三维动画设计研究工作
38井冈山学院(自然科学)第30卷第8期 图1直线型子弹链图2曲线型子弹链
设R--Velocity]~FrameTi,其中是运动半径, i=1
Velocity是运动速度,FrameTi是第帧所耗的时间 (标准游戏是60帧/秒).
1.2.2曲线型子弹链运动轨迹要想使得子弹的 运动轨迹成曲线型,可以在直线子弹链的基础上得 到.当每个子弹出发后,就开始按照同一个比率改 变方向值就可以实现,也就是改变发射角度0,如果 值改变较快的话,就可以实现如图2所示的螺线效 果.
1.2_3环形子弹链运动轨迹环形子弹链实际上 就是由几组直线型子弹链组成,在子弹运行时,改 变每组子弹链的发射角度,也就是改变公式(1)中 的0值,这样可以使整个子弹链环形旋转起来.如 果把图3中的两个环分开为两个环形子弹链(初始 化不同于直线子弹链)还可以让两个环向不同的方 向转动,这样将会有更好的环状视觉效果和更高的 游戏难度.
1.3引擎的数据结构设计
在开发游戏前,一定要规划子弹的数据结构, 包括子弹所处的状态,攻击力和多轨道子弹变轨控 制信息,相关代码如下所示.
enumBULLETSTATE//子弹所处于的状态 IUnbirth,//没有出生(也表示死亡的子
弹)Birthday,
DyingOut,//死亡
typedefstructBULLETDATA//单个子弹数据 {BULLETSTATEBulletState;//enum
D3DXVECTOR2Translation;//向量,子弹坐 标,D3DXVECT0R2为DirectXAPI的二维向量. floatAngle;//子弹与X轴的夹角,即速度方 向.
D3DXVECTOR2Scanlig;//子弹的缩放率 floatVelocity;//子弹速度大小
D3DXCOLORcolor;//调色盘,用于西单的变色 III
...
II
.
4
.
1,.?--?一
..
出来D3DXCOLOR为DirectXAPI的颜色宏. intPhycicalForce;//攻击力
boolbCanDieout;//碰撞后是否死亡 intChangePath;//变轨级别,用于对子弹在 不同的轨道之间运行的控制.
);
structBULLETDATA,
LINE:public
BULLETSTATE//单个线形子弹数据,比如激 光
fD3DXVECTOR2PointStart;///激光的 头部点
D3DXVECTOR2PointEnd;//激光的尾 部点
}LPBULLETDATA;
structBULLETCHAIN//子弹链,是由多
个单个的子弹组成
fBULLETDATABulletData;//单个子弹
数据
int64SpaceTime;//每个子弹发射
间隔时间,为精确用mS
…
.
//其它控制数据
BULLETCHAIN(intNum)//创建子弹链
{BulletData=newBULLETDATA[Num])
};
structBULLETBLOCK//子弹块,由多个
子弹链组成
(..?)
2动感绚丽效果的营造
2.1子弹花纹的设计
弹幕游戏效果华丽与否,主要是对子弹群的运 动轨迹安排是否得当,各种子弹样式的搭配是否合 理.在同一时刻最好有两种以上的弹幕样式同时出 现,这样才不会有单调的感觉,即使要出现同样式 的弹幕也要使它们的运动速度或者是运动角度有 所不同.除了在弹幕的运动轨迹上下功夫外,还应 对子弹设计不同的图案,比如圆形的,星型的,泡泡 『
?一口一yr....?.......?...?..,....?....中着之活生仑匕/,曙VL
第30卷第8期熊师,喻一凡,谭云兰,等:华丽弹幕游戏中子弹运动引擎的设计与实
现39
状的,直线型的(如激光),方形的等,还可以在子弹
本身画上不同的花纹,使得整个弹幕效果更加美 丽.本产品调用自主知识产权的游戏运动引擎,并 对子弹设计不同的图案,部分效果截图,如图4,5, 6,7所示.
一一图4直线型子弹链图5环形,曲线型子弹链1 一一图6环形,曲线型子弹链2图7环形,曲线型子弹链3 2.2动感游戏效果的营造
在游戏中使用一些特效会对游戏的整体质量 带来不小的提升,弹幕游戏中最常见的效果主要是 依靠"纹理动画"来实现的.纹理动画实现原理是在 同一个地方不停地更换图片,来实现物体自身形状 的实时改变以获得闪烁和高亮的效果.子弹在出生 的时候是由一个质点成长为一个面积较大的物体 的,子弹在飞行过程中也会发生一定的变形,在消 亡时又会塌陷成为一个质点,这些效果都要依靠纹 理动画实现I2-31.此外,角色在飞行过程中衣服的飘 动也可以用纹理动画实现.
除了用纹理动画以外还可以用"粒子系统"网 (DirectXAPI拥有比较完美的粒子系统)来模拟一 些像飞舞的雪花,漫天闪烁的精灵一类的场景来增 加游戏效果.
在营造效果的1日寸候也不要忘记音乐和剧情的 重要性.要制作一些符合场景,人物性格,游戏主题 的音乐才能给游戏带来更多的生机,拥有比较完整 剧情的游戏才可能进入世界优秀游戏的行列. 3进一步研究及结论
在华丽弹幕游戏中,由于子弹纷飞,因此数据 计算量巨大,显示速度受到影响,利用DirectX9直 接作用于硬件而使游戏程序获得加速【2],使得整个
游戏场景更流畅,更平滑,更生动.虽然弹幕游戏是 一
种二维游戏,但是为了增加视觉冲击力,要给它
加入三维的场景翻,这样做不仅让玩家觉得自己控 制的角色和敌人是在一个广泛的空间中战斗,而且 还可以减少美术方面的工作量.通常游戏显示是每
,如果用美工绘制有三维感的场景画面,1 秒6O帧
秒钟是远远显示不完60张,但用一款三维软件(比 如3DMAX)制作一个这样的场景就要节省许多功 夫,并且可以达到很好的效果】.
国内的弹幕游戏制作者非常少,游戏编程资源
严重缺乏,游戏引擎非常昂贵,在这种情况下,课题 组开发具有自主知识产权的游戏引擎,便于游戏升 级时不受引擎销售商的牵制.本系统运用粒子系统 和纹理动画来提升游戏的特效,运用DirectX9的控 件实现游戏的快速显示,使游戏场景更流畅,更平 滑,更生动.
参考文献
【l】叶至军.VisualC++/DireetX93D游戏开发导引【M】.北京:人 民邮电出版社,2OO6:86—92.
[2】王德才.精通DireetX3D图形与动画程序设计】.北京:人 民邮电出版社,2oo7:3O0—4oo.
[3】黄海明,刘金刚,易建强.基于SDL__0penGL的三维游戏优 化技术【J】.计算机工程,2007,33(20):213—216. 【4]靳碧鹏,蔡洪斌,何明耘.布料仿真技术在游戏中的设计和 实现[J】.计算机工程与应用,2007,43(10):105—107. 【5】刘一,桑楠.一种嵌入式图形支持库的设计与实现[J].计算机 应用,2oo7,6(27):340,341.
Designandimplement0fbulletmotionengine
inshiningbarragegames
XIONGShi,YUYi—fan,TlANYun—lan,XIAJie—wu,TANGWei—dong
(School,ofInformationScienceandCommunication,JinggangshanUniversity,Jiall343009,China)
Abstract:Thefloweryscenesofbarragegamesmainlydependontheproperlybulletclustertrajectoryand
thereasonablycollocationofbulletstyle.Thelocusequationisdesignedtocontrolthetrajectoryoftrains
suchasthelinearbullets,ringbulletsandcurvedbulletsbytheexperimentalcomparison.Differentbullet
shapes,whichincluderoundness,star,bubbledesign,linear,square,anddifferentcolordecorativepatterns?
aredesigned.Furthermore,weconstructthedynamicgorgeouseffectbycombiningitwithparticlesystem
andtextureanimation,whichcangreatlyenhancethespecialeffectofthegame.TheuseofDirectX9COB.
ponentstechnologycanmakethegamedisplayquickly,andmaketheplayingofthegamescenemoreflu—
id,smootherandlivelier.
Keywords:barragegame;bulletchains;bulletmotionengine(责任校对:彭晓冬)