游戏辅助控制.doc

上传人:工**** 文档编号:562161880 上传时间:2023-01-06 格式:DOC 页数:4 大小:28.01KB
返回 下载 相关 举报
游戏辅助控制.doc_第1页
第1页 / 共4页
游戏辅助控制.doc_第2页
第2页 / 共4页
游戏辅助控制.doc_第3页
第3页 / 共4页
游戏辅助控制.doc_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《游戏辅助控制.doc》由会员分享,可在线阅读,更多相关《游戏辅助控制.doc(4页珍藏版)》请在金锄头文库上搜索。

1、控制游戏角色移动到想要某地准备打怪练级.那么我们想象一下作为人类该怎样一步步的操作呢? 首先通过大脑里预先设定好满足战斗的条件. &|)hCJu eFQ 如背包未满.装备持久正常.携带药品足够.等等.再用眼睛检查角色各项是否满足其条件.如满足则查找当前画面是否有可攻击的怪物. 2b5#PcKa &,J*_Fs2 如果有则选择. 并攻击.怪物死亡后.检查地面是否有掉落物品.如有则拾取.然后重复之前的动作. 了解了这些情况后.如何编程来实现呢? fj-= aYqm0HCT 传统的编程实现方式既是遵循事先设定的逻辑.从头到尾顺序的执行.其缺点是过于死板.程序一经写成.很难对其进行扩展. 0#7Z j

2、.DHqHx 程序规模和代码逻辑成正比.不易于维护. 相较下.状态机编程思想成为更佳的解决方案.下面将通过C语言语法的伪代码来讲解其原理和实现. zxkM8JC /= CZy5w f-4.WW2FN 8!&nKyf 1.现态:是指游戏角色当前所处的状态. UP2q?4 mspnSF 2.条件:当一个条件被满足.将会触发一个动作.或者执行一次状态的迁移. f8=oa KVNXqE4 3.动作.条件满足后执行的工作 CQzT6! z+i=cAN 4.次态:条件满足后要迁往的新状态. ) oaeV 9VxskEh L&kr7q 综上所述.一个状态机可以通过2个函数来完成.第一个函数获取现态.再通过条

3、件返回需要执行的动作.第二个函数.实现动作的集合.并修改次态. F36 IM9/: n-J2/j 函数一: ut_pHj l +F_a unsigned int GetAction()/函数功能:获取状态并根据预先定义的条件来返回需要执行的动作码. %d2!x%bG QA?oJ_y 第一步获取状态: pK=*y$ 因为当今的MMORPG类游戏.都有各自简单的人工智能成分.所以在其设计时.游戏角色结构中必有一个域.来表示角色当前状态.这正是我们需要的.大前提所在.当然此域需要我们通过逆向分析取得. o6a0vU ZVih=Y-w 如:1=静止 2=休息 3=移动 4=战斗 5=受到攻击 Z?mc

4、|*x SASDuQU7 第二步对每种状态的各种条件进行判断.并返回结果. *J x 5,)vJ,fs switch (游戏角色状态) I&VTW8jB *ZrSiIPP lA? %L% case 1:当人物状态为静止时.检测是否符合挂机条件.再检测是否选择了怪物.如果所有条件不成立则返回攻击动作码 7 8 f$6J q YHXLv#8 fmX!6Kv 检查条件.通过先后逻辑来控制优先级 TrS8hC 6%G-Vs*2 if (满足回程补给条件=是) 返回结果 1 Qppfc, sgUud_r)4 else if (角色选中状态=空) 返回结果 2 PNs SRIA*M.B else 返回结果

5、 3 a6Njf Pp )3(T: 返回结果 3 HttiX/2 27;ci:5 wEVbmtW default: lT(oL|#P 89$# TY1I=8 如果状态未定义.可输出调试信息. Fmvu 0:+WO%z =5|NSK- *hw35%P? twwvu Function End Bfbn yFV2$ Rj4|Q:XG sQ fFu 函数二: QDu2?EYZq Z:*76PP, unsigned int Process() / 函数功能:动作合集,因为我们的状态是游戏客户端控制的.所以不需要我们来调整次态 ?:)h c 9T1ZL5 6Aku1h while (1) 可以开条子线程写

6、一个死循环检查状态返回的动作码. 如不喜可使用时钟,或其他 ioH9 & 9+; */ g4l !xT switch (GetAction() ) *3?4B8 i(NdGL#P case 1:执行回程补给动作 m8o(J hUF5fZqii case 2:执行选怪动作 CT;g4 &MCbYph, case 3:执行攻击动作 d&+hO tQBR A/ case 4:执行关机动作 Jk79v Y9&,t q case 5:执行寻路动作 :_ Z dF2nEaN0% case 6:执行拾取动作 ,.ut/Tm rSR:V?a default:输出调试信息 1*-mj *tKR&4,4s Loop End n6BQk 2l 61)-cVC Function End LdL/399+ vpMA$(h HDcmIXg& 以上函数只为说明思路.其条件设定和逻辑必定不够严谨.请观者不必执着于此.其状态机的优点就是相对灵活.可轻松扩展.并使逻辑清晰.并简单化. *%S eWb Gobo| 希望各位还不懂此思想的同学.看完此文.能理解其原理后举一反三写出自己完美的状态机

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号