请问如何实现像视频里面那样的格斗游戏的判定框
gamemaker吧
全部回复
仅看楼主
level 2
深渊咸鱼x 楼主


感觉格斗游戏的判定框很复杂,那位大佬可以给点提示吗?
2021年05月18日 07点05分 1
level 9
以前我是怎么写的、
如果处于攻击判定帧(具体帧或帧范围如4~6),
如果实例相对坐标数据的矩形(或者圆形)碰撞检测范围与被攻击目标的当前碰撞遮罩发生碰撞为真,
判定为击中目标,
,,,,执行击中程序脚本(参数1为敌对当前状态如防御、闪避、一般、虚弱等 ,
参数2为敌人当前其他状态如,地面,空中,晕值等
参数3为实例攻击类别,如轻手、重手、、
参数4实例当前其他状态,地面,空中,爆气,受击等、
参数5为其他如当前局时间、气的数据、等)
再在击中程序脚本里在设计运算伤害公式,伤害结果处理等什么一堆的比例巴拉的。
具体的还有很多细节要去考虑我记不大清楚了,源代码也早丢了[滑稽]
2021年05月18日 10点05分 2
这样好像还行,不过我更好奇的一点是原作的判断框一个动作状态里面不只是一个,还有位置大小变化,要一个个放,还给判定框加动画是不是有点奇怪
2021年05月18日 12点05分
你这个游戏我没有玩过,不过比如拳皇里八神的升龙技,她在那一招动作里就有不同坐标位置与尺寸的判定范围对应其帧数画面。一些简单的招数如轻手,她就只有一个相应的判定范围;判定框动画?那是开发模式下才看得见的吧,那是给设计师观察参考绘制的帮助信息。
2021年05月18日 12点05分
level 2
深渊咸鱼x 楼主
2021年05月18日 13点05分 3
level 2
深渊咸鱼x 楼主
类似这样的判断框,这是游戏中按f4显示的
2021年05月18日 13点05分 4
哦,这些判断框应该是当前角色动作下的各位置判定范围数据,,就是比如你的当前攻击判定范围是在敌对的头的判定范围时,计算公式就是相应的一套程序,如增加晕值,增加伤害,获得更长的连招CD冷却等;如果玩家的攻击判定是在敌对的下盘,那就达成击倒等先决条件,,这些判定范围都都是事先设计好的
2021年05月18日 16点05分
以起到响应相应的执行程序,你自己思考写一下慢慢就理解了,先写简单一点,2种判定,敌对战位的上身范围判定与下盘范围判定,哈哈,说起来简单,其实要写出来也是比较麻烦的[笑眼]感兴趣就下功夫啃吧
2021年05月18日 16点05分
@大四象 确实很麻烦啊,只找到一个gms2的格斗游戏教程,我先去啃啃那个再说吧,谢谢
2021年05月19日 00点05分
level 11
十分简单一点的话,那就是弄一个100x100的空精灵,碰撞盒填满,原点为左上角。
然后就是,你懂的嘛,调整image_xscale,image_yscale。
如果用的是gms2的话,还可以自己写个回调之类的,当然gm8也能写,麻烦点。
2021年05月19日 08点05分 6
回调函数吗?
2021年05月21日 06点05分
我还没使用过回调函数,就找到一个格斗游戏的教程,用的就是方形的精灵碰撞事件
2021年05月21日 06点05分
大概就是 image_xscale = xxx; image_yscale = xxx; cb = function(ins){...}; var e = instance_place(....); if e cb(e); 大概就是这个意思,用实例来做碰撞辅助。
2021年05月21日 12点05分
吧务
level 13
提问时应该尽量避免歧义……这个问题事实上可以理解成以下两个不同的问题:
A:如何制作格斗游戏的判定框(以判定框而不是GM自带的碰撞系统进行判定);
B:如何把游戏的判定系统显示出来。
A问题比较好解释(但做起来很麻烦),基本上就是要给每一帧动画都以数值设定上判定情况(受攻击、肉搏攻击、武器或技能攻击、投技抓取范围是哪块/哪几块),然后游戏运行时判定自身的攻击是否与对手的受击范围存在重合区域。判定重合后再根据是否防御/上下段之类的条件继续处理。
B问题的话,是在A问题的基础上进行一步绘制动作。至于用方块还是带宽度的线还是拉伸sprite都可以。其制作难度远低于A部分。而“按F4切换显示”也只是“加个变量就能解决的问题”这里也就不再展开细说。
2021年05月20日 03点05分 7
下次会注意的,我想我问的是A,这问题会不会太难了
2021年05月21日 06点05分
@深渊咸鱼x 不会太难,就是制作比较麻烦。难度的话上面应该主要内容都写出来了,剩下的就是给人物的每一帧动画都添加判定框,填各种数据
2021年05月25日 02点05分
level 10
之前做过一些格斗游戏,大概原理就是判断角色是否在攻击判定帧同时敌人在攻击判定碰撞框内。
我主要有两种实现方法:
1.使用纯数值表示碰撞框区域。优点是可以在代码层面进行参数的调整,缺点在编码阶段无法直观地观察到碰撞框和人物动作的贴合程度。
2.使用带碰撞盒且不可见的sprite。优点是直观方便,缺点是占用资源会比方法1大一点。
2021年06月01日 13点06分 8
level 5
我记得有一个专门做格斗游戏的引擎,你可以去百度查一下那个引擎是日本人开发出来的,是日本人做出来的,那个专门做格斗游戏的引擎
2025年09月18日 00点09分 9
1