你知道三国志战略版的地图是怎么实现的吗?

点击上方亿元程序员+关注和★星标

引言

一文告诉你三国志战略版中用到的六边形网格地图的原理。

传统的正方形网格地图:

与许多 传统战略游戏使用的正方形网格不同,《三国志战略版》采用了错位的正方形网格,可以理解成六边形网格的变种

"六边形"网格地图:

本文将介绍 一下六边形网格地图 的原理,以及如何在Cocos Creator 中实现一下六边形网格地图,非常详细

本文源码和源工程在文末获取,小伙伴们自行前往。

1.什么是六边形网格地图?

想象一下蜜蜂的蜂巢,或者一些策略游戏的地图,那就是最典型的六边形网格。

它是由正六边形这一种图形,以边对边的方式无缝、无重叠地铺满整个平面。

我们接着来看。

2.六边形网格地图有什么特点?

以下是六边形网格地图的主要特点:

  1. 方向:比传统的方形网格多2个方向,即6个方向。

  2. 距离:一个格子有且只有6个邻居,且中心到所有邻居中心的距离完全相等。

话不多说,一起来看下如何在Cocos Creator中实现一个六边形网格地图

3.一起来实现一个六边形网格地图

我们根据 以下的步骤一步一步来实现一个2D版本的六边形网格地图:

1.环境

引擎版本:Cocos Creator 3.8.7

编程语言:TypeScript

2.资源准备

简单找两个六边形格子分别表示地图格子的不同状态,再找一个其他图片作为主角。

然后 将资源放进去项目,并且简单制作一下地图格子 的预制体和主角的预制体,方便生成。

3.编写代码

首先 新建一个Main.ts脚本,简单预制一下地图数据,演示用,可以通过配置加载。

其中 0=空地,1=障碍物,2=玩家起点

然后绑定一下预制体、图片和切换关卡按钮,以及一些常量的定义。

将脚本拖拽到节点上,然后就可以进行绑定:

然后start中初始化游戏,以及绑定按钮事件。点击模拟进入下一关。

其中初始化游戏包括:

  • 清理上一关的内容

  • 获取当前关卡配置数据

  • 创建关卡

创建关卡的关键在于:

  • 1.格子坐标的计算

偶数行的格子向右偏移1/4个宽度。

  • 2.格子和主角的创建

instantiate克隆预制体。

addChild添加到游戏世界。

  • 3.突出主角

为了突出主角,我们给主角加个简单的上下动的tween动画。

4.效果演示

结语

本章 的核心在于格子坐标的偏移和获取,下一章我们将介绍六边形网格地图的寻路 ,记得关注我,帮我点赞推荐哦!

本文源工程 可通过私信 发送 HexagonalGrid 获取。

我是"亿元程序员",一位有着8年游戏行业经验的主程。在游戏开发中,希望能给到您帮助, 也希望通过您能帮助到大家。

AD:笔者线上的小游戏《打螺丝闯关》《贪吃蛇掌机经典》《重力迷宫球》《填色之旅》《方块掌机经典》大家可以自行点击搜索体验。

实不相瞒,想要个在看 !请把该文章分享给你觉得有需要的其他小伙伴。谢谢!

推荐专栏:

知识付费专栏

你知道和不知道的微信小游戏常用API整理,赶紧收藏用起来~

100个Cocos实例

8年主程手把手打造Cocos独立游戏开发框架

和8年游戏主程一起学习设计模式

从零开始开发贪吃蛇小游戏到上线系列

相关推荐
咩咩啃树皮3 小时前
第40篇:Vue3组件化开发精讲——组件拆分、复用、父子通信、工程化架构
java·前端·架构
阳光是sunny3 小时前
LangGraph中的Reducer是什么
前端·人工智能·后端
触底反弹3 小时前
一文搞懂 Tailwind CSS 弹性布局:从原理到实战
前端·css·html
阳光是sunny3 小时前
从链到图:LangGraph 入门基础全解析
前端·人工智能·后端
小林ixn4 小时前
从 ??= 到 onKeyDown:一个 React 组件的“自我修养”
前端·javascript·react.js
REDcker4 小时前
显示分辨率标准对照详解
前端·网络·分辨率·显示·屏幕
এ慕ོ冬℘゜4 小时前
前端实战:jQuery 多条件联合搜索(标题模糊查询 + 日历时间段筛选)
前端·javascript·jquery
武子康5 小时前
Search Console Platform Properties 扩大 SEO 资产边界:从 Page Ranking 到 Topic Coverage(5 类误读边界 + 3 表数据层设计)
前端·人工智能·后端
一点一木5 小时前
从60首歌到1个网站:输入你的故事,还你一首歌
前端·github
IT_陈寒6 小时前
Vue这个特性差点让我加班到凌晨,谁懂啊
前端·人工智能·后端