一点思考,战棋类游戏地图核心应该有什么?

来源:互联网 发布:手机号码定位寻人软件 编辑:程序博客网 时间:2024/05/17 07:42

这个周末在家闷了一天,思考和编写战棋类游戏地图的核心功能。

所谓核心功能我的理解就是抽象于具体游戏之上,引擎级别的东西。之前也没有参考过别人的代码,就按自己的构思和理解来吧。现在已经实现了如下功能

1.逻辑地图的创建

逻辑地图只包含整个战场的地图数据。负责处理整个战场的逻辑。每个地图块抽象到最高层就只包含一个属性:该地图块能否被角色移动到其上。比如一个块为墙壁,角色当然不能移动到这个块上面。

2.角色系统

该地图上所有的角色,角色的具体战斗数据(如HP) 和角色的基本数据分离(如MAXHP)。这里我用的bind(绑定),就是创建一个具体角色的时候可以去bind一个角色基本数据。

3.时间流逝系统

传统的战棋类游戏可以理解为时间按回合流逝,每回合先己方行动,然后敌方行动。。如此反复。但是我设计的时间流逝系统里包括 角色行动的CD、角色BUFF作用产生、角色技能CD等。

4.技能系统

跟角色系统类似,技能也是具体数据(比如技能等级)绑定技能数据(比如技能名称、技能攻击范围等)。

5.范围搜索

比如角色移动,计算角色的行动范围;角色使用XXX技能攻击,计算技能的攻击范围等。

6.对外的操作响应接口

用户的一些输入,触发地图逻辑的具体变化。

还有一些比如NPC AI(这个是个大课题啊 - -! ),BUFF系统(这个已经设计了一半),物品系统,脚本触发(这个赞一下WKM,咱已经完成之前设计的脚本引擎1.0版本)等需要设计和添加。

 

为了验证程序的正确性我还同步写了一个丑陋的命令行的地图核心测试工具,哈哈。




地图界面,用户输入,技能搜索




技能攻击范围搜索,角色攻击检测




角色移动范围检测




时间流逝系统