【Godot4自学手册】第七节背景搭建

各位同学,今天是第七节,在本节我会学习如何使用TileMap来完成背景搭建。

一、添加TileMap结点

先做个介绍,TileMap是基于 2D 图块的地图节点。Tilemap(图块地图)使用 TileSet,其中包含了图块的列表,用于创建基于栅格的地图。TileMap 可以有若干图层,可以将图块布局在彼此之上。开始啦,在main场景中选择Main结点点击添加结点按钮,在弹出对话框中选择TileMap结点,点击创建,这样就创建了一个TileMap结点,步骤如下:
请添加图片描述

在TileMap结点检查器中新建TileSet,操作过程如下:
请添加图片描述

新建完成后,会在编辑器中间出现TileSet和TileMap两个编辑面板,如下图:
请添加图片描述

我把背景需要的图片拖入到文件系统,然后在拖动将背景图拖入到TileSet编辑面板的图块内。操作过程如下:
请添加图片描述

在弹出对话框中,选择否,也可以选择是。选择是表示背景图片会自动被分割,选择否一会自己进行分割。在编辑面板中选择需要的图块,其中1-4图块是按住Shift建创建的。结果如下图:
请添加图片描述

切换到TileMap,如下图:
请添加图片描述

1处表示我们可以编辑了,2处是TileSet选择的哪些图片。重点介绍上面的工具栏,各个工具用途如下:
请添加图片描述

用gif展示一下各个工具如何使用,用手机的朋友就抱歉了,gif好像不能再手机上展示。
请添加图片描述

绘制过程是真个样子的,首先在工具栏中选择绘制工具,然后在TileMap编辑面板上选择绘制的对象,比如绿地、大树,最后在Tilemap结点的编辑窗口上绘制,这样就完成了。利用上述功能,就可以绘制背景了,最终我绘制了如下的背景:
请添加图片描述

二、调整结点顺序

运行调试,发现主人公没了,什么原因?原来是TileMap把主人公遮挡了,目前只需要在main场景中调整结点顺序,主人公就会出现了。节点顺序如下:
请添加图片描述

运行一下,发现背景没有随着主人公的移动变化而变化,下面就修改这个。

三、跟随相机移动

切换到Player场景,在Player结点下添加Camera2D结点,添加方法如下:
请添加图片描述

这样背景就可以移动了,但又出现下图样式:
请添加图片描述

这个需要对Camera2D结点检查器进行设置,将Camer2D->Limit属性下的left、top设置为0;Right设置1150,Bottom设置为630,这样就OK。
请添加图片描述

这里告诉同学一个技巧,若果你不知道这个属性是干什么用的,你就把鼠标放到属性上不动就会弹出属性说明,如下图:
请添加图片描述

或者在属性上单击右键选择打开文档,就会在编辑器正中央有属性说明。如下图:
请添加图片描述

来看一下,这小节的劳动成果如下:
请添加图片描述

这节就到这吧,谢谢同学们的关注。

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

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

相关文章

dvwa靶场文件上传high

dvwa upload high 第一次尝试(查看是否是前端验证)第二次尝试我的上传思路最后发现是图片码上传修改配置文件尝试蚁🗡连接菜刀连接 第一次尝试(查看是否是前端验证) 因为我是初学者,所以无法从代码审计角度…

JSON 字符串转换 —— Map、List

目录 转 Map maven 依赖 转换 转 List maven依赖 转换 转 Map JSON格式为 {key:value,key2:value2,......} maven 依赖 <dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.28</version>…

三元运算符是什么?怎么用?

三元表达式又叫三元运算符&#xff0c;它必须要有三个操作数参与的运算 操作符号&#xff1a;&#xff1f; 表达式&#xff1a;在参与js程序时&#xff0c;都必须先计算出表达式结果&#xff0c;才能参与后续程序 语法&#xff1a;布尔表达式&#xff1f;true&#xff1a;fal…

Day34- 动态规划part02

一、不同路径 题目一&#xff1a;62. 不同路径 62. 不同路径 一个机器人位于一个 m x n 网格的左上角 &#xff08;起始点在下图中标记为 “Start” &#xff09;。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角&#xff08;在下图中标记为 “Finish”…

「QT」QString类的详细说明

✨博客主页何曾参静谧的博客📌文章专栏「QT」QT5程序设计📚全部专栏「VS」Visual Studio「C/C++」C/C++程序设计「UG/NX」BlockUI集合「Win」Windows程序设计「

Python实现自定义函数的5种常见形式分析

Python自定义函数是以def开头&#xff0c;空一格之后是这个自定义函数的名称&#xff0c;名称后面是一对括号&#xff0c;括号里放置形参列表&#xff0c;结束括号后面一定要有冒号“&#xff1a;”&#xff0c;函数的执行体程序代码也要有适当的缩排。Python自定义函数的通用语…

idea结合git回到某个提交点

概述&#xff1a;在IntelliJ IDEA中&#xff0c;你可以使用Git工具来回到某个提交点。 第一步&#xff1a;打开idea&#xff0c;打开git的管理面 可以看到&#xff0c;由于我的大改动&#xff0c;导致现在出问题了&#xff0c;所以我准备回退到某一版本。 点击左下角的git 点…

React16源码: React中commitAllHostEffects内部的commitPlacement的源码实现

commitPlacement 1 &#xff09;概述 在 react commit 阶段的 commitRoot 第二个while循环中调用了 commitAllHostEffects&#xff0c;在这个函数内部处理了把一个新的dom节点挂载到真正的dom树上面去的一个过程现在主要关注下其中调用的 commitPlacement 2 &#xff09;源码…

软考15-上午题-编译程序基本原理

一、编译过程【回顾】 中间代码生成、代码优化&#xff0c;可省略。 二、正规式 词法分析的工具。 ab*&#xff1a;这个*针对的是b&#xff0c;即b可以出现0次或多次。 2-1、真题 真题1&#xff1a; 真题2&#xff1a; 真题3&#xff1a; 真题4&#xff1a; 真题5&#xff1a…

Python网络爬虫实战——实验7:Python使用apscheduler定时采集任务实战

【实验内容】 本实验主要介绍在Django框架中使用APScheduler第三方库实现对数据的定时采集。 【实验目的】 1、掌握APScheduler库的使用&#xff1b; 2、学习在Django中实现多个定时任务调度&#xff1b; 【实验步骤】 步骤1 Apscheduler简介与特点 步骤2 Apscheduler基本…

Linux进程间通信(IPC)机制之一:管道(Pipes)详解

&#x1f3ac;慕斯主页&#xff1a;修仙—别有洞天 ♈️今日夜电波&#xff1a;Nonsense—Sabrina Carpenter 0:50━━━━━━️&#x1f49f;──────── 2:43 &#x1f504; ◀️ ⏸ ▶️ …

Scrapy IP()类 编程指南(基础)

Scrapy IP()类 编程指南&#xff08;基础&#xff09; IP简介 工欲善其事&#xff0c;必先利其器&#xff0c;在聊Scapy IP类时&#xff0c;我们先要了解IP是什么。 IP指的是Internet Protocol&#xff08;互联网协议&#xff09;的数据包。Internet Protocol是互联网上用于在…

SpringBoot系列之JPA实现按年月日查询

SpringBoot系列之JPA实现按年月日查询 通过例子的方式介绍Springboot集成Spring Data JPA的方法&#xff0c;进行实验&#xff0c;要先创建一个Initializer工程&#xff0c;如图&#xff1a; 选择&#xff0c;需要的jdk版本&#xff0c;maven项目 选择需要的maven配置&#x…

pytest参数化

一、pytest.mark.parametrize介绍 pytest.mark.parametrize(argnames, argvalues, indirectFalse, idsNone)参数说明&#xff1a; argnames: 一个或多个参数名&#xff0c;用逗号分隔的字符串&#xff0c;如"arg1,arg2,arg3"&#xff0c;参数名与用例入参数一致。 a…

单元测试——题目十三

目录 题目要求: 定义类 测试类 题目要求: 根据输入的三条边值判断能组成何种三角形。三条边为变量a、b、c,范围为1≤边值≤10,不在范围内,提示“输入边值不在范围内”。不满足任意两边之和必须大于第三边,提示“输入边值不能组成三角形”。输入边值能组成三角形,只有…

Android读写文件,适配Q以上

Android Q升级了文件系统&#xff0c;访问文件不仅仅是说动态权限了&#xff0c;有各种限制。权限什么的就不赘述了&#xff0c;下面介绍一下在10以上的系统中访问文件。 首先是打开文件管理器 /*** 打开文件管理器 存储卡和外接U盘都可以访问*/public void openFileManager()…

什么是JSON

什么是JSON JSON&#xff1a;JavaScript Object Notation 【JavaScript 对象表示法】 JSON 是存储和交换文本信息的语法。类似 XML。 JSON采用完全独立于任何程序语言的文本格式&#xff0c;使JSON成为理想的数据交换语言S 为什么需要JSON 提到JSON&#xff0c;我们就应该和…

代码块(Java)

代码块是类的成分之一&#xff0c;分为静态代码块和实例代码块 1.静态代码块&#xff1a;static{} 类加载时会自动执行一次&#xff0c;可以完成类的初始化&#xff0c;比如初始化赋值 2.实例代码块&#xff1a;{} 每次创建对象时&#xff0c;执行实例代码块&#xff0c;会…

探索圆的面积计算器:神秘数学背后的无限魅力

导语&#xff1a;自古以来&#xff0c;圆形在人类文明中扮演着重要角色。从建筑、工程设计到日常生活&#xff0c;圆的面积都是一个不可或缺的元素。本文将带您深入了解圆的面积&#xff0c;从起源、应用场景到计算方法&#xff0c;让您领略数学的无穷魅力。 一、圆的面积是什…

java金额数字转中文

java金额数字转中文 运行结果&#xff1a; 会进行金额的四舍五入。 工具类源代码&#xff1a; /*** 金额数字转为中文*/ public class NumberToCN {/*** 汉语中数字大写*/private static final String[] CN_UPPER_NUMBER {"零", "壹", "贰",…