godot游戏引擎_瓦片集和瓦片地图介绍

news2024/11/27 11:59:48

在 Godot 中,TileSetTileMap 是用于处理瓦片地图的两个关键概念,它们的作用和用途有明显的区别。以下是两者的详细对比:


1. TileSet(瓦片集)

TileSet 是资源,定义瓦片的内容和属性

特点:
  • 用来定义瓦片资源:
    TileSet 是一个可复用的资源,存储了所有可用瓦片的图块(Tiles)、碰撞、动画、导航等信息。

  • 设计阶段:
    TileSet 中,你可以:

    • 指定每个瓦片的纹理(图像)。
    • 定义瓦片的碰撞形状(例如,某些瓦片是否可碰撞)。
    • 添加瓦片动画。
    • 为瓦片分配导航网格。
  • 复用性:
    一个 TileSet 可以被多个 TileMap 节点复用。

用途:

TileSet 是瓦片的“工具箱”,它定义了所有瓦片的规则、外观和行为,但不会直接显示在场景中。


2. TileMap(瓦片地图)

TileMap 是场景中的节点,用于绘制瓦片地图

特点:
  • 用来绘制瓦片:
    TileMap 节点使用一个 TileSet 资源,通过在场景中放置瓦片,创建实际的地图。

  • 场景中显示:
    TileMap 是在实际场景中放置瓦片地图的工具,可以直接在 2D 场景编辑器中绘制和编辑瓦片。

  • 功能:

    • 支持多种绘制工具,例如笔刷、矩形填充、桶工具等。
    • 可以调整瓦片网格大小、对齐方式和偏移。
    • 支持多图层(Godot 4.x 中为 TileMapLayer 子节点)。
  • 与游戏逻辑交互:
    TileMap 会根据 TileSet 的定义自动生成碰撞、导航和动画效果,在运行时直接与游戏角色交互。

用途:

TileMap 是瓦片的“画布”,它使用 TileSet 的内容,实际展示并管理瓦片地图。


对比总结:

属性TileSetTileMap
定义类型资源:定义瓦片的内容和属性节点:在场景中使用瓦片绘制地图
功能定义瓦片外观、碰撞、导航和动画绘制、显示和管理瓦片地图
是否可复用可被多个 TileMap 使用通常是一个具体的场景实例,不易复用
与场景的关系不直接存在于场景中存在于场景中,直接影响游戏表现

简单类比:

  • TileSet 是画家的调色板,包含所有的颜色和画笔(瓦片的定义)。
  • TileMap 是画布,使用调色板中的颜色和画笔,绘制实际的作品(瓦片地图)。

在 Godot 中,选择绘制属性并为瓦片设置位掩码(Bitmask),主要是用于自动图块(Autotiling) 功能。这个功能可以让瓦片在绘制时,根据周围的瓦片自动调整形状,从而更高效地创建地图,比如铺设道路、草地或围墙。

以下是这个过程的详细解释:


1. 背景知识

  • 位掩码(Bitmask):
    位掩码用于定义瓦片与其周围瓦片的连接规则。通过设置位掩码,可以让 Godot 自动选择正确的瓦片形状,避免手动调整边界或连接点。

  • 自动图块:
    当你为一个瓦片设置了位掩码后,Godot 根据绘制时瓦片的相邻情况,自动决定要使用哪一个瓦片。


2. “在图中点击所有瓦片”的含义

这一步是为了选择瓦片图集中需要定义位掩码的瓦片。比如,你可能有一组瓦片用于地板,有不同的形状(拐角、边缘、中心等),你需要在 TileSet 编辑器中逐一选择它们。

步骤:

  1. 打开 TileSet 资源。
  2. TileSet 编辑器中,点击瓦片图集中的瓦片,选中需要设置位掩码的所有瓦片。

3. “绘制位掩码”的含义

位掩码是通过在瓦片上手动绘制来定义的,表示该瓦片与哪些方向的相邻瓦片连接。

步骤:

  1. 进入 Bitmask 模式:
    TileSet 编辑器中,找到 Bitmask 工具并切换到它。

  2. 选择位掩码类型(重要!):

    • 2x2 位掩码: 简单位掩码,每个瓦片有 4 个部分(左上、右上、左下、右下)。适合简单地形。
    • 3x3 位掩码: 细致位掩码,每个瓦片有 9 个部分(上下左右四边、四角和中心)。适合复杂连接规则。
  3. 绘制位掩码:

    • 在瓦片的编辑区域内,点击或拖动鼠标绘制连接部分。
    • 每个“被填充”的部分表示该瓦片与该方向的瓦片相连。

完整流程示例:

假设你有一组瓦片用于绘制一片草地,草地边缘会根据周围是否有其他草地瓦片来改变形状。

  1. 选择瓦片:

    • 打开 TileSet 编辑器,选择草地相关的瓦片。
  2. 设置位掩码:

    • 进入 Bitmask 模式,为每个瓦片手动绘制连接规则。
    • 中间的瓦片(完全包围)设置所有方向为“连接”。
    • 边缘瓦片只设置相应的一侧为“连接”。
    • 拐角瓦片则仅设置两个相邻方向。
  3. 保存并应用:

    • 保存 TileSet 设置。
    • TileMap 中使用这个 TileSet,绘制时草地瓦片会根据周围环境自动选择正确的瓦片形状。

在为一个瓦片图集(TileSet)定义自动图块时,你需要:

  1. 选择所有要设置规则的瓦片
  2. 切换到 Bitmask 模式,绘制每个瓦片的连接规则。

通过完成这些操作,绘制地图时会更加智能化和高效。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2248390.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

51单片机从入门到精通:理论与实践指南入门篇(二)

续51单片机从入门到精通:理论与实践指南(一)https://blog.csdn.net/speaking_me/article/details/144067372 第一篇总体给大家在(全局)总体上讲解了一下51单片机,那么接下来几天结束详细讲解,从…

【pyspark学习从入门到精通20】机器学习库_3

目录 使用 ML 预测婴儿生存几率 加载数据 创建转换器 创建估计器 创建管道 拟合模型 使用 ML 预测婴儿生存几率 在这一部分,我们将使用前一章中的数据集的一部分来介绍 PySpark ML 的概念。 在这一部分,我们将再次尝试预测婴儿的生存几率。 加载…

【计算机网络】核心部分复习

目录 交换机 v.s. 路由器OSI七层更实用的TCP/IP四层TCPUDP 交换机 v.s. 路由器 交换机-MAC地址 链接设备和设备 路由器- IP地址 链接局域网和局域网 OSI七层 物理层:传输设备。原始电信号比特流。数据链路层:代表是交换机。物理地址寻址,交…

LLamafactory 批量推理与异步 API 调用效率对比实测

背景 在阅读 LLamafactory 的文档时候,发现它支持批量推理: 推理.https://llamafactory.readthedocs.io/zh-cn/latest/getting_started/inference.html 。 于是便想测试一下,它的批量推理速度有多快。本文实现了 下述两种的大模型推理,并对…

【自动化Selenium】Python 网页自动化测试脚本(上)

目录 1、Selenium介绍 2、Selenium环境安装 3、创建浏览器、设置、打开 4、打开网页、关闭网页、浏览器 5、浏览器最大化、最小化 6、浏览器的打开位置、尺寸 7、浏览器截图、网页刷新 8、元素定位 9、元素交互操作 10、元素定位 (1)ID定位 &…

Table 滚动条始终停靠在可视区域的底部

1. 话题引入 存在这样一个场景:当页面尺寸发生变化时,希望滚动条能够随之动态调整,始终展示在 table 的可视区域的最下方,而不是整个 table 本身的最底部。 这种行为可以提升用户的使用体验,尤其是在处理大数据表格时…

【漏洞复现】CVE-2020-13925

漏洞信息 NVD - CVE-2020-13925 Similar to CVE-2020-1956, Kylin has one more restful API which concatenates the API inputs into OS commands and then executes them on the server; while the reported API misses necessary input validation, which causes the hac…

基于Springboot的心灵治愈交流平台系统的设计与实现

基于Springboot的心灵治愈交流平台系统 介绍 基于Springboot的心灵治愈交流平台系统,后端框架使用Springboot和mybatis,前端框架使用Vuehrml,数据库使用mysql,使用B/S架构实现前台用户系统和后台管理员系统,和不同级别…

快速理解微服务中Gateway的概念

一.基本概念 定义: 在微服务架构中,Spring Cloud Gateway 是一个用于API网关的框架,它是一个基于 Spring Framework 的高效、可扩展的路由器和反向代理,它能够将外部请求转发到适当的微服务,并提供一些与请求处理相关…

Java【多线程】(1)进程与线程

目录 1.前言 2.正文 2.1什么是进程 2.2PCB(进程控制块) 2.2.1进程id 2.2.2内存指针 2.2.3文件描述符表 2.2.4进程状态 2.2.4.1就绪状态 2.2.4.2阻塞状态 2.2.5进程优先级 2.2.6进程上下文 2.2.7进程的记账信息 2.3CPU操作进程的方法 2.4什…

计算机毕业设计Python+大模型美食推荐系统 美食可视化 美食数据分析大屏 美食爬虫 美团爬虫 机器学习 大数据毕业设计 Django Vue.js

温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…

华为鸿蒙内核成为HarmonyOS NEXT流畅安全新基座

HDC2024华为重磅发布全自研操作系统内核—鸿蒙内核,鸿蒙内核替换Linux内核成为HarmonyOS NEXT稳定流畅新基座。鸿蒙内核具备更弹性、更流畅、更安全三大特征,性能超越Linux内核10.7%。 鸿蒙内核更弹性:元OS架构,性能安全双收益 万…

kafka生产者和消费者命令的使用

kafka-console-producer.sh 生产数据 # 发送信息 指定topic即可 kafka-console-producer.sh \ --bootstrap-server bigdata01:9092 \ --topic topicA # 主题# 进程 29124 ConsoleProducer kafka-console-consumer.sh 消费数据 # 消费数据 kafka-console-consumer.sh \ --boo…

构造函数的相关

文章目录 一、构造函数 今天我们要来讲解类的默认成员函数之一的构造函数。 一、构造函数 构造函数是特殊的成员函数,需要注意的是,构造函数虽然名称叫构造,但是构造函数的主要任务并不是开空间创建对象(我们常使用的局部对象是栈帧创建时&…

云服务器部署WebSocket项目

WebSocket是一种在单个TCP连接上进行全双工通信的协议,其设计的目的是在Web浏览器和Web服务器之间进行实时通信(实时Web) WebSocket协议的优点包括: 1. 更高效的网络利用率:与HTTP相比,WebSocket的握手只…

计算机网络八股整理(一)

计算机网络八股文整理 一:网络模型 1:网络osi模型和tcp/ip模型分别介绍一下 osi模型是国际标准的网络模型,它由七层组成,从上到下分别是:应用层,表示层,会话层,传输层,…

【Qt】控件7

1.QTextEdit的简单使用 使用简单的QTextEdit,获取到的内容显示到标签上 使用textChanged信号 在槽函数中需要获取QTextEdit的内容,对应操作是: QString curorui->textEdit->toPlainText();然后显示到标签上,对应操作是: …

【博主推荐】C#的winfrom应用中datagridview常见问题及解决方案汇总

文章目录 1.datagridview绘制出现鼠标悬浮数据变空白2.datagridview在每列前动态添加序号2.1 加载数据集完成后绘制序号2.2 RowPostPaint事件绘制 3.datagridview改变行样式4.datagridview后台修改指定列数据5.datagridview固定某个列宽6.datagridview某个列的显示隐藏7.datagr…

AI智能体崛起:从“工具”到“助手”的进化之路

目录 AI智能体的崛起 AI智能体的定义与决策模型 AI智能体的特点与优势 AI智能体的应用与类型 面临的挑战 未来展望 近年来,人工智能领域的焦点正从传统的聊天机器人(Chat Bot)快速转向更具潜力的AI智能体(AI Agent&#xff…

【计网】自定义协议与序列化(一) —— Socket封装于服务器端改写

🌎 应用层自定义协议与序列化 文章目录: Tcp协议Socket编程 应用层简介 序列化和反序列化       重新理解read/write/recv/send及tcp的全双工       Socket封装       服务器端改写 🚀应用层简介 我们程序员写的一个个解决…