随笔分类 - G-3D完整实例教程-2D射击游戏篇
摘要:8.弹幕系统弹幕系统概述:弹幕系统的设计体现了射击游戏的基本要素,玩家要在敌人放出的大量子弹(弹幕)的细小空隙间闪避,能在玩家闪躲弹幕的时候给玩家带来快感,接近满屏的子弹,增加了对玩家的视觉冲击力。弹幕系统原理:每一个敌机都持有一个弹幕实例,每个弹幕实例中包含多个子弹实例,通过配置弹幕的属性,使每个子弹实例在轨迹管理器的作用下,形成一种有规律性的直线运动,在视觉上给玩家展现出弹幕的效果。如图8-1所示。图8-1实现方法:步骤1:子弹类,定义子弹的属性和借口。01publicclassBullet02{03//从模板创建子弹Actor04publicvoidCreateActor ()05{06
阅读全文
摘要:7.全屏炸弹全屏炸弹概述:为了增设游戏的趣味性,我们制作一个游戏的基本框架以外。还会增设一些其他的额外的功能。比如5秒无敌状态、冰冻效果等。下面咱们以消灭屏幕中所有炸弹为例,看除了碰撞可以触发事件的发生,其它操作是怎样触发事件的。全屏炸弹原理:设定键->敌人全部死亡,如图7-1所示。图7-1实现方法:步骤1:开发者操控指令设定。1//控制全屏炸弹,玩家按B键2if(Input.KeyDown(Code.B))3{4 enemyMgr.Instance.ClearAllEnemy();//清除所有敌人5}步骤2:玩家发出指令。玩家根据游戏设定,按B键发出消灭所有敌人指令。步骤3:执行指令。
阅读全文
摘要:6.计分计分概述:分值计量直接反应玩家在游戏中获得的成就感。因此,计分系统在游戏中显得尤为重要,有的反应在直接获取的分数上,有的反应在杀敌数量上等。计分原理:原理图,如图6-1所示。图6-1实现方法:步骤1:子弹击中敌人。击中敌人的条件参考4.碰撞检测内容。步骤2:敌人死亡。相关代码如下所示。步骤3:3.1计分器计分原理:(1)定义一个有九个格子的显示器面板,面板从右到左用下角标标注为0-8,每个格子存放0-9十个数字。(2)设定每消灭一个敌人,玩家获取5分,将数值每次传给一个变量var;将数值var传给string数组。(3)数组中有数值的位数,对应显示器面板方格的下角标,使对应下角标方格的
阅读全文
摘要:5.角色中弹概述:为了使游戏具有挑战性,大部分游戏设定中,游戏角色都有生命限制。即在游戏中,由于玩家的操控操控不当,导致游戏角色死亡游戏终止。打飞机游戏也不例外,当敌人击中角色的时候,角色宣判死亡,游戏结束。原理:碰撞事件发生后的处理事件。敌人击中游戏角色->角色死亡。实现方法:步骤1:子弹击中敌人。击中敌人的条件参考4.碰撞检测内容。步骤2:角色死亡01publicclassPlaneTrigger : ScriptableClass02{03 publicoverridevoidOnLoad()04 {05 //初始化碰撞体,注册回调函数.06 Actor colliderActor
阅读全文
摘要:4.碰撞检测碰撞概述:游戏世界里,游戏对象不能做出如同在真实世界里的物理运动效果。对于大部分游戏来说,都要为其添加物理系统,让其可以模拟真实世界发生的物理运动。但是在这个打飞机游戏Demo中,是用脚本代码来实现对碰撞事件发生的检测的,下文将详细介绍实现的方法。碰撞检测原理:为物体创建子空Actor,作为物体包装盒用于对碰撞事件发生的检测,当包围盒直接发生交叉、包含等关系时候,判定触发碰撞事件,产生相应碰撞效果,流程图如图5-1所示。图5-1实现方法:步骤1:碰撞检测体包围盒的制作。在场景中Create(创建)->Empty Object(空物体,即空Actor),将空Actor拖动到物体
阅读全文
摘要:3.子弹发射子弹发射概述:在打飞机游戏中,子弹是自动发射的。子弹与子弹之间间隔一定的时间,玩家通过上下左右控制游戏角色,来达到躲避敌人及击中敌人的操作。发射原理:抽象理解为有两个容器存放子弹,其中一个容器装载死亡子弹,一个容器装载活着的子弹。二者在一定的判定条件下,将子弹循环装载、释放,达到子弹的自动发射效果。这里定义子弹总量为20发,初始状态下都存放在死亡容器中,根据开发者定义的循环条件判定,形成两容器间的子弹循环,以达到子弹自动发射效果。流程如图3-1所示。图3-1实现方法:步骤1添加子弹01publicclassCannonMgr02{03 publicvoidInit()04 {05
阅读全文
摘要:2.滚屏滚屏概述:打飞机游戏场景背景设计通常很简单,因为角色敌人道具等都不与背景发生交互事件。开发者只需要根据设定的游戏类型,为游戏制作背景,模拟一个大环境即可。滚屏原理:材质UV动画,实现背景图片的滚屏循环。实现方法:步骤1:创建背景载体。创建立方体->适当缩放物体,使物体形状上接近长方形,这样正面在视觉上接近竖版手机屏幕。步骤2:SS创建背景材质球。项目视图中创建材质球->将材质球赋给步骤1创建的cube物体->将材质球命名为UVAnim。步骤3:3.1为材质球设置Shader文件。将制作好的UV循环播放的Shader文件,导入到项目视图中。这里需要注意,引擎对shade
阅读全文
摘要:1.播放序列动画系列动画播放概述2D游戏中的动画系统,不同于3D游戏。3D游戏中,角色美术资源不仅包含角色模型的,还包括角色的贴图和动作等,模型本身自带角色的动作动画效果。2D游戏中,角色美术资源仅仅是单张的序列帧图片,需要开发者将序列帧连续播放,形成角色的动画效果。为了能实现上述的2D游戏角色动画效果,Genesis-3D引擎加入了对2D图片的编辑功能,其中主要借助精灵包(Sprite)得以实现。播放原理:在Genesis-3D引擎中制作精灵动画,来实现其序列帧的播放效果,如图1-1所示。图1-1实现方法:步骤1:创建精灵包。在项目视图中,创建>精灵包完成精灵包的创建,并将“精灵包”命
阅读全文
摘要:G-3D引擎2D射击类游戏制作教程游戏类型:打飞机游戏属于射击类游戏中的一种,可以划分为卷轴射击类游戏。视觉表现类型为:2D框架简介:Genesis-3D引擎不仅为开发者提供一个3D游戏制作的平台,同样也可以完成2D游戏的制作。下文中将通过对一个2D打飞机游戏制作的介绍,来了解引擎是怎样实现2D游戏所需功能的。整个框架教程设计一下几部分内容:(1)序列帧动画制作(2)背景滚屏效果的实现(3)自动发射子弹(4)碰撞检测(5)角色中弹(6)计分器实现(7)全屏炸弹效果实现(8)弹幕系统通常上述内容的学习,基本可以掌握打飞机同类2D游戏制作的核心框架,开发者根据自身策划的游戏内容,做细化实现,即可完
阅读全文