当前位置: 首页 > news >正文

做网站公司做网站公司深圳网络推广团队

做网站公司做网站公司,深圳网络推广团队,维吾尔网站建设学,怎么查公司网站有没有被收录想要生成一个六边形组成的地图 完整代码示例 以下是完整的代码示例,包含了注释来解释每一步: cc.Class({extends: cc.Component,properties: {hexPrefab: {default: null,type: cc.Prefab},mapWidth: 10, // 网格的宽度(六边形的数量&am…

想要生成一个六边形组成的地图

完整代码示例

以下是完整的代码示例,包含了注释来解释每一步:

cc.Class({extends: cc.Component,properties: {hexPrefab: {default: null,type: cc.Prefab},mapWidth: 10,   // 网格的宽度(六边形的数量)mapHeight: 10,  // 网格的高度(六边形的数量)hexSize: 64     // 六边形的大小(从中心到顶点的距离)},// onLoad is called once when the script is loadedonLoad() {this.generateHexMap();},generateHexMap() {// 计算六边形的宽度和高度let hexWidth = this.hexSize * Math.sqrt(3); // 计算六边形的宽度let hexHeight = this.hexSize * 1.5; // 计算六边形的高度// 遍历行和列生成六边形for (let y = 0; y < this.mapHeight; y++) {for (let x = 0; x < this.mapWidth; x++) {// 计算六边形的 x 和 y 坐标let xPos = x * hexWidth + (y % 2) * (hexWidth / 2);let yPos = y * (hexHeight * 0.75);// 实例化一个六边形预制体并设置其位置let hex = cc.instantiate(this.hexPrefab);hex.setPosition(cc.v2(xPos, yPos));this.node.addChild(hex); // 将六边形添加到当前节点}}}
});

this.hexSize 是一个属性,用来定义六边形的大小。在生成六边形网格时,它决定了每个六边形的边长或半径,从而影响整个网格的布局和尺寸。

在六边形网格中,hexSize 通常指的是六边形从中心到任意一个顶点的距离(也可以理解为半径)。这个值被用来计算六边形的宽度(从一边到另一边的水平距离)和高度(从一个顶点到对面顶点的垂直距离)。

具体示例说明

假设 this.hexSize = 64,那么:

  • 六边形宽度(hexWidth):这是从六边形左边到右边的水平距离。对于正六边形,宽度公式为 hexWidth = hexSize * sqrt(3)。在代码中,这样计算:

    let hexWidth = this.hexSize * Math.sqrt(3);
    

    如果 this.hexSize = 64,则 hexWidth = 64 * sqrt(3) ≈ 110.85

  • 六边形高度(hexHeight):这是从一个顶点到对面顶点的垂直距离。对于正六边形,高度公式为 hexHeight = hexSize * 2。在代码中,这样计算:

    let hexHeight = this.hexSize * 1.5;
    

    如果 this.hexSize = 64,则 hexHeight = 64 * 1.5 = 96

生成六边形网格的原理

每个六边形的位置由其在网格中的索引 (x, y) 决定。由于六边形的相邻行是错位排列的,需要根据行号 (y) 进行偏移:

  • 水平偏移

    let xPos = x * hexWidth + (y % 2) * (hexWidth / 2);
    

    这段代码意思是:如果当前行号是奇数(y % 2),则将六边形水平位置向右偏移半个六边形的宽度,以实现错位排列。

  • 垂直偏移

    let yPos = y * (hexHeight * 0.75);
    

    这段代码意思是:每行的六边形向下移动 0.75 个六边形高度,以实现垂直错位排列。0.75 是为了保证六边形之间的紧密排列。

在这里插入图片描述

运行项目

  1. 在Cocos Creator中创建一个新的空节点,命名为HexMap
  2. HexMap.js脚本添加到HexMap节点。
  3. 将你创建的六边形预制体(HexPrefab)拖放到HexMap脚本的hexPrefab属性中。
  4. 运行项目,观察生成的六边形网格地图。

这样,你就能生成一个六边形网格地图,并可以根据需要调整六边形的大小和地图的宽高参数。

http://www.ds6.com.cn/news/36773.html

相关文章:

  • 做网站apache如何广告宣传方式有哪些
  • 做资金盘 互助盘的网站域名注册网站哪个好
  • 自己可以做网站服务器吗公司网站免费建站
  • 哪些网站用户体验好日本域名注册
  • 学会网站建设搜索引擎优化主要包括
  • 网站建设如何创建框架页面网络营销专业大学排名
  • 沈阳网站推广排名方案seo工作职位
  • 目标网站上做关键字布局seo课程简介
  • 个体户可以做企业网站广州 竞价托管
  • 沈阳网站建设首选龙兴科技百度网站名称及网址
  • 网站建设的同义词seo网站诊断报告
  • 网站qq未启用网站推广属于哪些
  • discuz 网站风格网络销售的方法和技巧
  • 洛阳网络公司排名seo站群优化
  • 湘潭做网站 联系磐石网络重庆企业seo
  • 公司网站建设佛山哪家盐城seo推广
  • 响应式网站模板百度云世界十大搜索引擎排名
  • 做网站毕业论文的参考文献智能网站排名优化
  • 12个 网站模板 管理办法营销网站的建造步骤
  • 更新网站 seo关键词点击工具
  • 网络设计方案的组成部分seo平台有哪些
  • xp系统中做网站服务器吗站长之家ping检测
  • zblog做单页网站培训心得体会范文
  • 中央人民政府网站搜索碳中和四期百度关键词搜索指数查询
  • 怎么仿制别人的网站站长工具查询seo
  • 建设flash网站百度推广登录入口
  • 微信公众号开发用什么语言seo网络推广是什么意思
  • 阿里云需要网站建设方案书全国疫情排行榜最新情况列表
  • 秦皇岛吧贴吧重庆seo全网营销
  • 肖港网站开发怎么推广网址