【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区域后,房子变为不透明。
最终演示效果如下所示:
请添加图片描述

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

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

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

相关文章

MATLAB - 控制小车上的倒立摆

系列文章目录 前言 一、小车 - 摆杆 小车 - 摆杆模型如图 1 所示,使用 Simscape™ Multibody™ 在 Simulink 中建模。 图 1:小车上的倒立摆 图 2:Simscape 多体模型 该系统通过对小车施加可变力 进行控制。控制器需要在将小车移动到新位置或…

【LLM多模态】Cogview3、DALL-E3、CogVLM、CogVideo模型

note 文章目录 noteVisualGLM-6B模型图生文:CogVLM-17B模型1. 模型架构2. 模型效果 文生图:CogView3模型DALL-E3模型CogVideo模型网易伏羲-丹青模型Reference VisualGLM-6B模型 VisualGLM 是一个依赖于具体语言模型的多模态模型,而CogVLM则是…

【代码随想录】刷题笔记Day56

前言 26回了老家参加二姨的婚礼,还逛了几圈亲戚,回来就接家教的活,想到还要刷题开组会,回家注定是没法怎么休息啦,可恶 42. 接雨水 - 力扣(LeetCode) 暴力解法(双指针优化&#xf…

Kafka核心概念、数据存储设计及Partition数据文件 生产者负载均衡策略、批量发送技巧、消息压缩手段、消费者设计

关注公众号,发送 “面试题” 即可免费领取一份超全的面试题PDF文件!!!! 1、kafka的概念 Kafka 是一个开源的分布式流处理平台,最初由LinkedIn开发,后来成为Apache软件基金会的一个顶级项目。它…

SpringAop实现访问日志功能的添加

AOP 是 Spring 体系中非常重要的两个概念之一(另外一个是 IoC),今天这篇文章就来带大家通过实战的方式,在编程猫 SpringBoot 项目中使用 AOP 技术为 controller 层添加一个切面来实现接口访问的统一日志记录。 #一、关于 AOP AO…

讯飞星火V3.5发布,一场大模型的奇幻之旅(深度体验讯飞星火V3.5)

在去年的人工智能领域,大模型无疑是最炙手可热的技术话题。其强大的数据处理和深度学习能力,为众多领域带来了革命性的变革。而其中,讯飞星火表现尤为出色,成为了行业的翘楚,得到了大量的用户认可,其中&…

day38 ● 509. 斐波那契数 ● 70. 爬楼梯 ● 746. 使用最小花费爬楼梯

动态规划是前一个状态推导过来的&#xff0c;贪心是局部最优解。 class Solution { public:int fib(int n) {int a0;int b1;int res0;if(n1) return 1;for(int i2;i<n;i){resab;ab;bres;}return res;} }; 可以由前面状态推出后面状态&#xff0c;是动态规划。由于始终只要后…

C++20 协程原理与应用

协程 要想了解协程&#xff0c;最好先搞清楚进程&#xff0c;线程&#xff0c;这样才能将三者区分开来&#xff01; 进程 vs 线程 vs 协程 进程线程协程切换者操作系统操作系统用户&#xff08;编程者&#xff09;切换时机根据操作系统自己的切换策略&#xff0c;用户不感知根…

最小化安装BCLinux-for-Euler-21.10-dvd-x86_64-230731版

本文记录最小化安装BCLinux-for-Euler-21.10-dvd-x86_64-230731版。 一、镜像获取 1、下载镜像 移动云官方网站 最新镜像为2023-11-02 15:04:56更新的BCLinux-for-Euler-21.10-dvd-x86_64-230731版 直接下载地址&#xff1a;https://mirrors.cmecloud.cn/bclinux/oe21.10/I…

【Linux】线程池的简易实现(懒汉模式)

文章目录 前言一、懒汉方式1.普通模式1.线程安全模式 二、源代码1.Task.hpp(要执行的任务)2.ThreadPool.hpp(线程池)3.Main.cpp 前言 线程池: 一种线程使用模式。线程过多会带来调度开销&#xff0c;进而影响缓存局部性和整体性能。而线程池维护着多个线程&#xff0c;等待着监…

java之mybatis入门

大前题 正确创建好了springboot工程&#xff0c;极其依赖 配置数据库连接 application.yml spring:datasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/cangqiongusername: rootpassword: rootlombok Data 自动生成代码&#xff08…

【免费分享】概率神经网络的分类预测--基于PNN的变压器故障诊断

主要内容 ​《MATLAB神经网络43个案例分析》共有43章&#xff0c;内容涵盖常见的神经网络&#xff08;BP、RBF、SOM、Hopfield、Elman、LVQ、Kohonen、GRNN、NARX等&#xff09;以及相关智能算法&#xff08;SVM、决策树、随机森林、极限学习机等&#xff09;。同时&#x…

Java 对部分接口返回数据进行加密,或其他处理

业务场景&#xff1a;后端项目中分为PC端和移动端接口&#xff0c;移动端为例如 mobile 开头的URl&#xff0c;需求为调用移动端接口时&#xff0c;对返回数据进行加密&#xff0c;PC端不加密 import cn.hutool.core.date.DatePattern; import cn.hutool.json.JSONConfig; impo…

系统架构设计师-22年-下午题目

系统架构设计师-22年-下午题目 更多软考知识请访问 https://ruankao.blog.csdn.net/ 试题一必答&#xff0c;二、三、四、五题中任选两题作答 试题一 (25分) 说明 某电子商务公司拟升级其会员与促销管理系统&#xff0c;向用户提供个性化服务&#xff0c;提高用户的粘性。…

全流程机器视觉工程开发(三)任务前瞻 - 从opencv的安装编译说起,到图像增强和分割

前言 最近开始做这个裂缝识别的任务了&#xff0c;大大小小的问题我已经摸得差不多了&#xff0c;然后关于识别任务和分割任务我现在也弄的差不多了。 现在开始做正式的业务&#xff0c;也就是我们说的裂缝识别的任务。作为前言&#xff0c;先来说说场景&#xff1a; 现在相…

0131-2-关于事件捕获和冒泡

关于事件捕获和冒泡 DOM事件流分为三个阶段&#xff1a;捕获阶段、目标阶段、冒泡阶段 点击目标元素后&#xff0c;不会马上触发目标元素&#xff0c;而是先执行事件捕获&#xff0c;从顶部逐步到目标元素&#xff1b;处于目标阶段的时候触发目标元素&#xff1b;最后冒泡阶段…

如何在Raspberry Pi上启用SSH并结合cpolar内网穿透实现公网远程访问本地树莓派

文章目录 如何通过 SSH 连接到树莓派步骤1. 在 Raspberry Pi 上启用 SSH步骤2. 查找树莓派的 IP 地址步骤3. SSH 到你的树莓派步骤 4. 在任何地点访问家中的树莓派4.1 安装 Cpolar4.2 cpolar进行token认证4.3 配置cpolar服务开机自启动4.4 查看映射到公网的隧道地址4.5 ssh公网…

我的创作纪念日和前端碎碎念

机缘 作为一个前端开发者&#xff0c;我一直热衷于将设计和技术相结合&#xff0c;尽可能提升用户体验。我最初成为创作者的初心源于学习记录&#xff0c;把创作当作一个笔记&#xff0c;希望把自己遇到的问题&#xff0c;以及学习到的实用技巧记录下来&#xff0c;方便学习回…

Qt Excel读写 - QXlsx的安装配置以及测试

Qt Excel读写 - QXlsx的安装配置以及测试 引言一、安装配置二、简单测试 引言 Qt无自带的库处理Excel 文件&#xff0c;但可通过QAxObject 借助COM接口进行Excel的读写1。亦可使用免费的开源第三方库&#xff1a;QXlsx&#xff0c;一个基于Qt库开发的用于读写Microsoft Excel文…

CUDA下载安装教程,新手详细

目录 一、下载二、安装三、 设置环境变量四、补丁安装 由于项目需要安装特定版本的CUDA&#xff0c;现记录安装过程。 一、下载 进入官方下载地址&#xff1a;https://developer.nvidia.com/cuda-toolkit-archive 选择自己需要的版本。如果没有明确要求版本号&#xff0c;那么…