【Godot4自学手册】第十节将场景添加到TileSet绘制背景,主人公走到房子后面房子变得半透明

这节主要学习将场景添加到TileSet作为TileMap来搭建背景。同时,主人公进入房子后面,房子变得半透明,离开房子后房子变的不透明。

一、创建新场景

首先导入房子素材,最终文件系统内容如下:
请添加图片描述

点击新建场景按钮,然后选择其它节点,在弹出对话框中找到StaticBody2D节点,点击创建。
请添加图片描述

为啥选用StaticBody2D节点,是因为房子是不可移动的符合StaticBody2D节点特征。StaticBody2D节点表示无法被外力移动的 2D 物理物体。无法因外力和接触而移动,但可以通过代码方法手动移动。添加节点后会在节点后面有个叹号,双击提示如下:
请添加图片描述

给 添加连个子节点:
一是Sprite2D节点,将房屋的图片拖到该节点检查器texture内,如下图:
请添加图片描述

二是CollisionPolygon2D节点。然后在主场景中沿着房屋边缘绘制碰撞形状,最终效果如下:
请添加图片描述

最后保存该场景到Scenes文件夹下,命名为House。

二、将场景添加到TileSet绘制背景

切换到TileSet面板,把House场景添加到图块内,第一步切换到TileSet选项卡,第二步添加按钮选择场景合集;第三步将House.tscn拖入到场景集合内,这样就可以绘制背景了,操作过程如下:
请添加图片描述

切换到TileMap就可以在场景中绘制房屋了。
请添加图片描述

三、主人公走到房子后面房子变得半透明

切换到House场景,在House结点下Area2D结点,Area2D结点下添加CollisionShape2D结点,CollisionShape2D检查器中shap属性选择RectangleShape2D表示2D 矩形。整个过程如下:
请添加图片描述

选择House结点,单击添加脚本按钮,选择脚本存放路径为Scripts文件夹内,如下:
请添加图片描述

代码中只保留下一行,其他删除。
extends StaticBody2D
然后选择Area2D结点,在结点选项卡中将body_entered信号添加到House结点的文本中。
请添加图片描述

这样会在代码中添加func _on_area_2d_body_entered(body):代码。简单介绍一下body_entered信号和body_exite信号。
1.body_entered(body: Node2D)当接收到的 body 进入这个区域时发出的。body 可以是一个 PhysicsBody2D 或一个 TileMap。如果 TileMap 的 TileSet 配置了碰撞形状,就会被检测到。需要将 monitoring 设置为 true 。
2.body_exited(body: Node2D)当接收到的 body 离开这个区域时发出的。body 可以是一个 PhysicsBody2D 或一个 TileMap。如果 TileMap 的 TileSet 配置了碰撞形状,就会被检测到。要求 monitoring 被设置为 true 。
同理在House代码中添加body_exited信号。然后将代码完善成如下:
请添加图片描述

extends StaticBody2D
@onready var  house = $Sprite2D #获取房屋图片
func _on_area_2d_body_entered(body):
	#当主人公与入Area2D区域
	if body.name=="Player":#进入该区域的是主人公
		house.modulate.a =0.5#透明度设置为0.5
func _on_area_2d_body_exited(body):
	#当主人公离开Area2D区域
	if body.name=="Player":#走出该区域的是主人公
		house.modulate.a =1#透明度设置为1

这段代码表示当主人公进入Area2D区域后,房子变成透明;当主人公离开Area2D区域后,房子变为不透明。
最终演示效果如下所示:
请添加图片描述

这一节就到此了,同学再见!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Qt学习笔记】(一)初识Qt

Qt学习笔记 1 使用Qt Creator 新建项目2 项目代码解释3 创建第一个 Hello World 程序4 关于内存泄漏问题5 Qt 中的对象树6 关于 qDebug()的使用7 使用其他方式创建一个 Hello World 程序(编辑框和按钮方式)8 关于 Qt 中的命名规范…

阿里云智能集团副总裁安筱鹏:企业数字化的终局是什么?

以下文章来源于数字化企业 ,作者安筱鹏博士 回答数字化终局追问的起点是,企业需要重新定义我是谁。成为有竞争力的行业领导厂商,你应当成为一个客户运营商,即能够实时洞察、实时满足客户需求,追求极致的客户体验。而要…

使用 Docker 部署扫雷小游戏

1)源码 介绍:扫雷游戏是一款经典的单人益智游戏,旨在通过揭示方块和避开地雷来展示玩家的逻辑思维和推理能力。 源码:saolei.zip 个人文件站:https://share.wuhanjiayou.cn/ 2)部署 2.1)安装…

SpringBoot中处理校验逻辑的两种方式:Hibernate Validator+全局异常处理

最近正在开发一个知识库学习网站编程喵🐱,需要对请求参数进行校验,比如说非空啊、长度限制啊等等,可选的解决方案有两种: 一种是用 Hibernate Validator 来处理一种是用全局异常来处理 两种方式,我们一一…

基于EdgeWorkers的边缘应用如何进行单元测试?

随着各行各业数字化转型的持续深入,越来越多企业开始选择将一些应用程序放在距离最终用户更近的边缘位置来运行,借此降低延迟,提高应用程序响应速度,打造更出色的用户体验。 相比传统集中部署和运行的方式,这种边缘应…

websocket编写聊天室

【黑马程序员】WebSocket打造在线聊天室【配套资料源码】 总时长 02:45:00 共6P 此文章包含第1p-第p6的内容 简介 温馨提示:现在都是第三方支持聊天,如极光,学这个用于自己项目完全没问题,大项目不建议使用 需求分析 代码

Vue学习总结

声明:本文来源于黑马程序员PDF讲义 双向绑定: 修改表单项标签,发现vue对象data中的数据也发生了变化 双向绑定的作用:可以获取表单的数据的值,然后提交给服务器 事件绑定 v-on: 用来给html标签绑定事件的。需要注意…

了解 Redis Channel:消息传递机制、发布与订阅,以及打造简易聊天室的实战应用。

文章目录 1. Redis Channel 是什么2. Redis-Cli 中演示使用3. 利用 Channel 打造一个简易的聊天室参考文献 1. Redis Channel 是什么 Redis Channel 是一种消息传递机制,允许发布者向特定频道发布消息,而订阅者则通过订阅频道实时接收消息。 Redis Cha…

LRU 缓存置换策略:提升系统效率的秘密武器(下)

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

小程序定制开发前,应该考虑些什么?

引言 在移动互联网时代,小程序已经成为许多企业和个人推广业务、提供服务的理想平台。然而,在进行小程序定制开发之前,开发者和业务方需要细致入微地考虑一系列关键因素,以确保最终的小程序既能满足用户需求,又能够顺…

Linux第40步_移植ST公司uboot的第1步_创建配置文件_设备树_修改电源管理和sdmmc节点

ST公司uboot移植分两步走: 第1步:完成“创建配置文件,设备树,修改电源管理和sdmmc节点,以及shell脚本和编译”。 第2步“完成”修改网络驱动、USB OTG设备树和LCD驱动,以及编译和烧写测试“。 移植太复杂…

牛客——中位数图(连续子数组和二维前缀和)

链接:登录—专业IT笔试面试备考平台_牛客网 来源:牛客网 题目描述 给出1~n的一个排列,统计该排列有多少个长度为奇数的连续子序列的中位数是b。中位数是指把所有元素从小到大排列后,位于中间的数。 输入描述: 第一行为两个正…

Mysql基础篇笔记

数据表 链接:https://pan.baidu.com/s/1dPitBSxLznogqsbfwmih2Q 提取码:b0rp --来自百度网盘超级会员V5的分享 sql的执行顺序 根据顺序 也就是说 select后面的字段别名 只能在order by中使用 mysql不支持sql92的外连接 mysql不支持满外连接 可以…

springBoot+Vue汽车销售源码

源码描述: 汽车销售管理系统源码基于spring boot以及Vue开发。 针对汽车销售提供客户信息、车辆信息、订单信息、销售人员管理、 财务报表等功能,提供经理和销售两种角色进行管理。 技术架构: idea(推荐)、jdk1.8、mysql5.X(不能为8驱动不匹配)、ma…

Docker多节点部署Minio分布式文件系统并测试

文章目录 一、前提准备二、文件配置1. .env2. env/minio.env3. docker-compose-minio.yml 三、测试四、Java测试1. 引入依赖2. 增删改 一、前提准备 准备如下文件夹和文件 ./ ├── docker-compose-minio.yml ├── .env ├── env │ ├── minio.env ├── minio │…

使用 Paimon + StarRocks 极速批流一体湖仓分析

摘要:本文整理自阿里云智能高级开发工程师王日宇,在 Flink Forward Asia 2023 流式湖仓(二)专场的分享。本篇内容主要分为以下四部分: StarRocksPaimon 湖仓分析的发展历程使用 StarRocksPaimon 进行湖仓分析主要场景和…

力扣hot100 跳跃游戏 贪心

Problem: 55. 跳跃游戏 文章目录 思路复杂度Code 思路 👨‍🏫 参考 挨着跳,记录最远能到达的地方 复杂度 时间复杂度: O ( n ) O(n) O(n) 空间复杂度: O ( 1 ) O(1) O(1) Code class Solution {public boolean canJump(int[] nums)…

利用onenet mqtt协议 ,ESP32上传温湿度数据流成功(arduinoIDE)

目标:开发esp32通过onenet平台远程控制LED、继电器等其它设备,并利用onenet可视化功能开发出一个简单的控制页面。 原以为能够快速完成,没想到接入mqtt协议、数据流上传、可视化按键都不同程度遇到了问题,还好经过一番查找和修改…

docker安装elasticsearch+kibana

目录 1.安装es 2.安装kibana 3.kibana监控es 1.安装es 拉取镜像 docker pull elasticsearch:7.6.1 创建存放配置文件、数据、插件的各个文件夹 mkdir -p /home/docker/elasticsearch/config mkdir -p /home/docker/elasticsearch/data mkdir -p /home/docker/elasticsearch…

【每日一题】 2024年1月汇编

🔥博客主页: A_SHOWY🎥系列专栏:力扣刷题总结录 数据结构 云计算 数字图像处理 力扣每日一题_ 【1.4】2397.被列覆盖的最多行数 2397. 被列覆盖的最多行数https://leetcode.cn/problems/maximum-rows-covered-by-columns/ 这…