Dungeon Mizarka 003

以群体为主的敌人

从Eye of Beholder(EoB)或是类似的游戏里可以看到敌人是以一群群的方式聚集,但也是有可能会有一群里只有一只的情况。

因此,目前的游戏敌人也会以一群群为单位,在地图上进行移动。

玩家和敌人群体的移动是采用回合制,也就说玩家移动後才换敌方移动。而这样的输流移动,是最适合用状态机进行处理,刚好VS也有状态机的机制可以使用。

也为了要能够让敌人移动,将之前的Grid Data进行修正,让玩家和敌人可以共用同样的机制,并且调整到由Script端给可否移动的资讯,再由VS端自行决定是否要移动到该位置。

现阶段的敌人会拿取A★的格状资料,并进行随意移动。虽然这不是很正确的移动方式,但至少拿到了格状资料,不会移动到障碍物(如墙壁)里。之後进行AI时,会拿取A★的资料加以利用後做有意义的移动行为。

为了统一玩家和敌人的概念,一律用群为单位,也就是说就算是游戏本身是控制单一角色,概念上仍是以一个玩家群进行移动。为了要确定哪个敌人移动过,利用Dictionary进行暂存,并於每回合切换时进行重置。

虽然是不是动态的呈现,但仍可看到代表敌人的红点在画面上进行移动

调整成FPS视角

基本的玩家移动和怪物移动完成後,在Playmode里因为Camera没有跟着玩家做移动,当玩家移动几格後就看不到,趁着基本移动成形之时,先把Camera跟随和其视角调整一下。

自从Unity将Cinemachine功能加入後,直接利用它进行Camera的行为已经是常态了。利用Unity提供的Cinemachine,可将FPS的镜头的快速设定好。不过这个时间点也只是做大概的设定,实际细部的调整之後才会进行。但在这样简易的调整下,效果就已符合预期

画面的呈现

後续调整

基本移动出来了,但现在拿取到的移动资料是直接引用A★的格状资料,此资料只有记录地形本身的连接性,考量到玩家有可能会被怪物群挡住移动,但可能有某些手段可以移动过去,怪物群之间的移动或许可重叠等较为游戏玩法不确性,怪物一群群的资料额外记录引用会比较适合。


<<:  予焦啦!使用暂存器除错

>>:  Day 15 Chatbot integration- 韩文翻译机器人

PHP 连接资料库 使用 PDO

PDO PDO 全称 PHP Data Object extension 是 PHP 5.1 开始提...

[Day7]Where子句

前几篇介绍了Select语句,接下来会以相同模式介绍Where子句。 Where子句格式: Wher...

[Day20] Flutter GetX routing

这篇主要讲GetX在页面切换之间的路由(上下页的前後文关系) 初步先建立一个routes的资料夹 里...

动员大外宣: 拉供应商/合作夥伴一起提升(向下)

趋近尾声了,今天开始来讲对外的部分啦,其主角就是企业的供应链(供应商/合作商/3th Party)...

[小故事]跌破众人眼镜! 聊聊 JavaScript 的封王之路

欢迎来到 Ian 的知识讲堂,本篇会用说故事的方式跟大家聊聊全端宠儿 - JavaScript 的小...