一直想做一个格斗游戏,但是有很多技术细节不清楚。现在接触as有些时间了,对mapdemo也有了些了解,拳皇也被虐腻了,终于有了些想法,我想应该可以开始尝试了 ^ ^,所以用这一帖来和大家一起商量一下,一个格斗游戏的引擎该怎么设计,引擎好了,做一个格斗游戏自然就不成问题了。
下面来说说我的看法。部分设想是从mapdemo的源码中得来的。
1、设想
格斗游戏需要选择人物,人物的资料差别在于每个人物使用的图像不同,但是人物之间也有很多共同点。比如 :动作状态、动画切换速度、XY坐标、高度标记、移动速度、动画队列、输入判定、防御极限(用于判断破防)、是否破绽(用于判断受到伤害时是否有加成)、命中判定等。
每个人物需要一张完整的像素图,像素图包含了所有的动作动画,还需要一个配置文件,保存了人物的所有出招按键序列,招式高度标记,攻击帧、防御帧、无敌帧,攻击帧还包含这帧的攻击范围、攻击力,力度(用于计算攻击成功后的反弹距离)、强度(破防点)、级别(用于标识招式的级别)、招式类型(拳脚/投技/必杀技/自动连续技)等。
2、实现构想
动画切割类:通过mapDemo中的人物类,可以发现其中有个切图用的类,里面包含了如何把一张图片切割成动画序列的方法,改进一下,让它可以根据外部的配置,切割出我们想要的各组动画序列,保存到一个动画管理用的类或变量里面,以备打斗时播放。
动画控制类:有切割动画用的类,就需要有负责播放动画的类,包括动画切换速度、人物移动及人物移动速度、人物对象的左右转向、人物对象的各种动作切换、人物攻击/被攻击/防御时添加到场景的特效、场景切换/震动/移动、蓄气槽/血槽相关动画等。
数据判定类,包括输入判定、伤害判定、人物状态和数据变化的设置等,它会和动画类紧密配合,完成格斗中的打斗流程。
人物类,保存动画切割类切割好的所有动作序列,根据动画控制类发送的各种通知控制人物中各种动画的播放和变换,动画控制类中的通知是由数据判定类触发的,控制流向大致为:数据判定类<—>动画控制类—>人物类。
游戏流程控制类:用于控制整个游戏的流程:开始—>选择人物—>格斗<—>选择人物—>结束。包含设置游戏参数等流程。
3、细分
动作状态:0 正常、1 出招(播放招式动画)、2 收招(不接受输入)、3 无敌(躲避、放必杀、炸星瞬间、开场pose)、4 被打(播放对应的人物被打动画)、5 晕厥(晕厥点达到后进入此状态)、6 破防(达到防御极限后进入此状态)、7 连击(对方处于破防、破绽状态时我方会进入此状态)、8 破绽(出招未中,被对手反击进入此状态)、9 倒地,接受输入时启动输入判定并计时,在判定计时完成前每次按下按键都启动按键计时,超过按键计时后就把收集到的按键序列与招式表对比,发现吻合的,就通知人物类对象播放正确的动画,否则就继续格斗流程。
接受输入的状态包括:0 正常、1 出招(出现短暂输入判定计时的时候)、3 无敌、7 连击。
不接受输入的状态包括:2 收招、4 被打、5 晕厥、6 破防、8 破绽、9 倒地。
高度标记:0 蹲下、1 站立、3 低空、4 高空。招式中也有高度标记,用来标识这个招式的高度类型,如“下+脚”的高度标记为0,属于蹲下的高度。
动画队列:用于实现连技,如果当前动画未播放完,此动画是重拳、轻拳等在命中对手后能启动短暂的输入判定计时的招式,则在此输入判定计时结束前,能完成一个正确的招式输入,则刚完成输入的招式的动画索引会存入队列中,等播放完当前动画,就会继续播放已加入队列的那个招式动画,直到队列为空时为止。连技结束。
以上是目前想到的构思,也是个人的观察和思考的结果,很不全面,有很多不到位的地方,如果大家有新想法或修改意见欢迎跟帖讨论,会在整理中逐步融合进来,争取得到一个能满足开发条件的构思出来。
一些想法的实验:
格斗按键输入:
http://www.eb163.com/club/thread-16702-1-1.html
分享到:
相关推荐
Mugen,中文名“梦幻格斗”,是一款由Elecbyte开发的免费开源的2D格斗游戏引擎,它为游戏开发者提供了一个强大的平台,用于创建自定义的格斗游戏。这款引擎因其高度的可定制性和丰富的社区支持而备受赞誉。Mugen的源...
Godot引擎开发:GDScript在格斗游戏中的应用_(10).格斗游戏音效与音乐.docx Godot引擎开发:GDScript在格斗游戏中的应用_(11).格斗游戏网络对战实现.docx Godot引擎开发:GDScript在格斗游戏中的应用_(12)....
Unity引擎开发:格斗游戏动画系统_1.格斗游戏动画系统概述.docx Unity引擎开发:格斗游戏动画系统_10.攻击动画与命中检测.docx Unity引擎开发:格斗游戏动画系统_11.连招与组合技设计.docx Unity引擎开发:格斗游戏...
实战项目:开发一个完整的格斗游戏动画系统.docx Phaser引擎开发:格斗游戏动画系统_(1).Phaser引擎基础与格斗游戏开发入门.docx Phaser引擎开发:格斗游戏动画系统_(2).Phaser中的动画系统概述.docx Phaser引擎...
Godot引擎开发:格斗游戏动画系统_(10).角色移动和跳跃动画.docx Godot引擎开发:格斗游戏动画系统_(11).技能动画设计.docx Godot引擎开发:格斗游戏动画系统_(12).连招系统实现.docx Godot引擎开发:格斗游戏...
CryEngine引擎开发:物理引擎在格斗游戏中的应用_(10).物理引擎与游戏性能的平衡.docx CryEngine引擎开发:物理引擎在格斗游戏中的应用_(11).高级物理模拟技术:布料与流体.docx CryEngine引擎开发:物理引擎在...
Cocos Creator引擎开发:格斗游戏动画系统_(10).攻击与受击动画匹配.docx Cocos Creator引擎开发:格斗游戏动画系统_(11).角色状态机设计.docx Cocos Creator引擎开发:格斗游戏动画系统_(12).动画性能优化....
CryEngine引擎开发:格斗游戏动画系统_(10).连招与组合技的动画实现.docx CryEngine引擎开发:格斗游戏动画系统_(11).格斗游戏中的命中与反应动画.docx CryEngine引擎开发:格斗游戏动画系统_(12).格斗游戏的...
本项目以“仿最终幻想”为主题,利用Unity3D的游戏引擎,构建了一个包含完备格斗动作机制的互动体验,主角为克劳德,一个在最终幻想系列中深受玩家喜爱的角色。 首先,我们关注游戏的核心——动作系统。在Unity3D中...
通用格斗引擎(UFE)是一个使用各种易于使用的工具和编辑器开发2D和2.5D格斗游戏的框架
战斗系统是游戏的另一个重点,涉及到伤害计算、生命值管理、技能冷却、连招判定等内容。在Unity中,这些可以通过脚本逻辑来实现,例如创建一个战斗Manager类来统一管理战斗相关的数据和逻辑。 技能释放通常会结合...
基于C#实现的多人2D格斗游戏(emoji大乱斗)源码.zip基于C#实现的多人2D格斗游戏(emoji大乱斗)源码.zip基于C#实现的多人2D格斗游戏(emoji大乱斗)源码.zip基于C#实现的多人2D格斗游戏(emoji大乱斗)源码.zip基于C#实现的...
在本项目中,我们讨论的是一个使用C语言开发的2D格斗游戏,它具有开源和自由软件的特点,让我们深入探讨这个项目所涉及的关键技术、设计思路以及C语言在游戏开发中的应用。 首先,2D格斗游戏的核心是游戏引擎。尽管...
在这个"格斗游戏demo"中,我们看到的是一个利用LayaAIR进行开发的格斗游戏项目。下面将详细探讨LayaAIR的特性以及在开发格斗游戏时可能涉及的关键知识点。 1. **LayaAIR框架**:LayaAIR提供了一套完整的开发工具链...
2d格斗游戏制作大师可以帮助广大玩家圆这个梦,该软件英文名叫2D FTG Game Maker,简称为2dfm,它是由日本OUTBACK制作发行的一款2d格斗游戏制作软件,可以完美运行在windows平台上,软件在程序方面没有任何要求,...
Unity3d 拳皇类大型3D格斗游戏源码 街机对战游戏项目 整个项目的完整压缩包 , 直接打开就行 , 无需其他操作 适合二次开发和学习使用 , 如果有问题请切换编译器 或者下载最新编译器 Unity街机游戏源码 Unity3d 拳皇...
"格斗游戏系列素材"是一个非常有价值的资源集合,尤其对于那些致力于创建或改进格斗类游戏的开发者来说。这个压缩包包含了丰富的素材,涵盖了从角色设计到战斗动画的多个关键元素。接下来,我们将详细探讨这些素材在...
格斗游戏中的战斗系统设计是另一个核心部分。这通常涉及角色的生命值、能量条、技能释放等管理。这些数据可以通过Unity的Scriptable Objects实现,以便在不影响游戏运行时动态修改。同时,战斗逻辑可以通过Event ...
本源码资源"5.6-2018 3D横版格斗游戏"提供了实现此类游戏的核心代码和技术,旨在帮助开发者理解和学习如何在Unity 3D环境中构建一个激动人心的3D格斗体验。 1. **游戏架构**: - 在Unity 3D中,3D横版格斗游戏通常...
【3D格斗游戏源码】是针对游戏开发领域中的一个特定主题,主要涉及的是使用三维(3D)图形技术构建的格斗类游戏的原始编程代码。在计算机科学和游戏开发中,源码是程序员用高级编程语言编写的文本,它构成了软件的...