DC出品的游戏 《蝙蝠侠》 反击 程序是怎样做到的包括 《指环王 中土世界》反击 是怎样做的

我不知道题主是策划还是程序。策划只需要告诉程序:劳资要做一个反击,可一对一一对多,可以用镜头选定反击目标,可反击的目标头上有提示。不就好了?当然实际要比这个复杂详细。程序的话,劳资猜想大概如下:每个敌人是一个单独的对象,判断与玩家的距离和当前进入攻击状态的其他敌人数目后,选择是否攻击或者以什么手段攻击。然后播放攻击前摇动画,头顶显示提示,提交到可反击目标队列中。在帧动画函数里针对反击键做如下判断:检测可反击目标队列是否为空——非空则遍历,判断镜头中心发射的射线是否穿过其中之一的成员(是否选定反击目标),空则中断连击,播放反击失败的动画——若无反击目标被镜头选中,则选择队列首的对象(因为是最先攻击的,也是攻击最快落到身上的),根据其位置,选择合适的反击动画,将人物进行微调进入播放动画的起始位置开始播放,若有目标被镜头选中,则反击被选中的目标。反击成功后,队首元素出队,元素指向的对象清除反击欲望;反击失败被攻击后,队列里所有的元素出队,所有敌人的攻击欲望。当然这个逻辑还有毛毛多需要调整的地方,比如敌人攻击时的配置,是否优先反击远程攻击,如何快速进入反击动画的初始位置等等等等。劳资只是个嘴炮党而已。
■网友
同样看不出难点在哪里(如果只是说逻辑实现的话)换个说法,题主你的这个问题:“那么从程序上讲,这个是肿么个做到的。”其实你自己已经回答了。“比如蝙胡侠~ 周围 有N个敌方单位,同时进入了可反击的状态条件(介个时候捏,这些单位头上会高亮一个图标。),玩家操控的镜头中心,可以选定反击的目标(当然如果没有这一步的选定,按敌对单位进入可反击状态的顺序来选择单位)。当选定的单位N码内有额外的1-2个敌人时,同时反击这些单位。”代码逻辑上和这个相去不远,这是原始需求,抽象一下就可以变成具体的需求分析。OOP的思路大概是,给每个敌人一个状态监听,每个敌人执行自己的攻击流程,进入攻击状态时告知多个观察者,其中就有反击观察者,其排除不能反击的对象,根据event来收集数量、距离等信息,决定接下来要调用的动作动画。这是一种。再不是,每个敌人自己计算与主角的位置信息,合法后提交反击请求。这又是一种。你如果想实现反击,重点并不是这套逻辑……还是找你家的程序和建模问问吧……
■网友
没有类似游戏设计经验,不懂难点所在,光从算法来看似乎不复杂。
■网友
UE4不就是图形引擎么,你说得都是逻辑,跟图形有什么关系。而且这个逻辑看上去很简单,感觉你有点好高骛远,不如先打好编程基础。


    推荐阅读