先说一下所谓的"灵感",是几个月前玩的“杀戮之心EXA”,突发奇想,就做了个这个鸡肋到不行的
游戏(姑且也算....),Bug不少...
因为技术原因和时间原因,还有许多没有弄好(比如这个版本的事件几乎没有区别,
打算:比如带的子弹允许多一点,血就少一点,移动速度慢一点),所以请大家帮忙优化和完美这个系统
当然,这个有两个版本,”标准版“以及”附加版“
不过,我”故意“留了个”设定BUG“,运用这个BUG,比较容易赢,不过怎么运用BUG在”附加版“上的事件上有
翠花,上截图!
标准版
附加版
这个游戏是给“事件”赋予“生命”,让它们互相搏斗,只用原脚本和事件几乎不能完成,
所以动手加了几个小方法
在这,基本命令有“射击” “攻击” “防御”
标准版全方法如下:
- #==============================================================================# ■ Game_AI#------------------------------------------------------------------------------# 该版本的 AI 模块,AI只是噱头而已,哈哈#===============================================================================begin方法诠释 注:有些方法 我填的是 @event_id 这是己事件的ID,是在事件脚本上填的 如在“设置事件移动路线”的脚本栏用,请使用 @id Scene_Map $scene.defend(@event_id) 命令自身进行防御 $scene.event_shoot(@event_id,angle,show_text=true) 命令自身进行射击 angle 方向 单位:度 show_text 是否显示攻击信息 $scene.text_show(text,@event_id) 显示文章text(比如说些废话) $scene.event_atk(@event_id,show_text=true) 命令自身向正前方进行物理攻击 show_text 是否显示攻击信息 Game_Character # 在“设置事件移动路线”的脚本栏用,已把“跳跃”和谐了 turn_to(direction) 朝向direction方向 tomove(x,y) 自动移动 By OCTSJimmy 寻路算法 By whbm 在x,y坐标是可通行的情况下,向x,y移动 jump_new(direction,foot) foot在1,2之间 在目标坐标是可通行情况下,朝direction方向跳跃foot步 Game_AI ※ 标准版 Game_AI.check_self_hp(@event_id) 返回自身HP Game_AI.check_near_event(@event_id) 返回离自身事件最近敌人编号(返回值范围 1,2,3) Game_AI.check_self_ammo(@event_id) 返回自身所剩弹药数 Game_AI.check_event_screen_xy(which,who) 返回目标事件屏幕坐标 which : 阵营 0:甲方 1:乙方 who : 编号 范围 1,2,3 Game_AI.check_enemy(@event_id,direction=0) 检查四方向直线上是否有敌人 direction 不填时(或填0) 是检查面向直线上 direction : 上 下 左 右 : 8 2 4 6 (参考小键盘) 返回值 true 或 false Game_AI.check_enemy_forward(@event_id,direction=0) 检查四方向身前是否有敌人 direction 不填时(或填0) 是检查面前 填-1时,是任何1面(身前)有敌人 就返回朝向(2486),没有时返回0 direction : 上 下 左 右 : 8 2 4 6 (参考小键盘) 返回值 true 或 false Game_AI.check_friend(@event_id[,direction]) 检查四方向直线上是否有同伴 参考 check_enemy Game_AI.check_fire(which,who) 检查屏幕上指定目标发射子弹的残留数(目前屏幕上有多少子弹是XX发射的) which : 阵营 0:甲方 1:乙方 who : 编号 范围 1,2,3 返回子弹数目 返回值大于等于0 Game_AI.check_atk(which,who) 检查指定目标是否正在攻击 which : 阵营 0:甲方 1:乙方 who : 编号 范围 1,2,3 返回子弹数目 返回值大于等于0 Game_AI.check_event_id(which,who) 返回指定目标的事件编号 用于捕捉x,y坐标 如 $game_map.events[id].x which : 阵营 0:甲方 1:乙方 who : 编号 范围 1,2,3 Game_AI.check_event_angle(@event_id,enemy,who) 返回目标事件与己事件角度 一般用于事件射击($scene.event_shoot) enemy : 敌人 0 : 自己 1 : 敌人 who : 编号 1,2,3 Game_AI.move_possible?(@event_id,direction,foot) 检查自事件周围是否可通行 direction 方向 8方向8246 7913 foot 距离 如Game_AI.move_possible?(@event_id,7,2)就是返回自身事件左上2格是否 可通行,一般用于是否可跳跃 Game_AI.check_event_defend(@event_id,enemy,who) 检查目标事件是否正在防御 enemy : 0:己 1:敌 who : 编号 Game_AI.check_event_hp(@event_id,enemy,who) 检查目标事件HP enemy : 0:己 1:敌 who : 编号 返回目标事件HP ※ 附加版 略=end 复制代码
复制代码
在地图上,有双方各3个事件,在事件名称为"甲1XX"“甲2XX"甲3XX"”乙1XX“"乙2XX""乙3XX"
其中XX是你决定的名字
在事件第一页上要总共等待100帧,然后A开关打开(随便什么)执行你的事件
附加版较标准而言只是多了几个比较实用的方法(真的只有几个...)
比如:检查距离敌目标事件之间有没有同伴, 以防误伤(本来 返回目标事件与己事件角度 是附加版里面的...)
到了这,这么设计”AI“呢?我给一个智商很低”例子“
这样的AI没问题? 废话,智商很低...
怎么设计出智商较高的AI,这就要看你了!!
注意:游戏里面不要”作弊“,比如给自己无偿加血
好像没什么了
附:标准版
附加版
本帖来自P1论坛作者沙漠点灰,因Project1站服务器在国外有时候访问缓慢不方便作者交流学习,经联系P1站长fux2同意署名转载一起分享游戏制作经验,共同为国内独立游戏作者共同创造良好交流环境,原文地址:
https://rpg.blue/forum.php?mod=viewthread&tid=169132 若有侵权,发帖作者可联系底部站长QQ在线咨询功能删除,谢谢。