【Godot4自学手册】第二十五利用PointLight2D节点点缀夜晚灯光

夜晚来临了,少不了灯光的出现,今天就用PointLight2D节点来实现夜晚的忽闪忽闪灯光效果。

一、添加场景

1、添加PointLight2D场景

单击添加新节点按钮,在场景面板中选择其他节点,在弹出创建Node对话框中选择 PointLight2D,最后选择创建按钮,完成场景的创建,并保存到Sences文件夹下,命名为Light。
请添加图片描述

2.设置PointLight2D节点属性

事先准备好一张灯光素材如下:
请添加图片描述

将该素材添加到PointLigt2D->Texture属性下,这样就有灯光效果了;将该节点的Light2D->Shawdow的Enabled属性启用,该属性表示该灯光会产生阴影,后面会有具体情况。
请添加图片描述

二、实现灯光闪烁效果

1.添加AnimationPlayer节点

单击添加子节点按钮,在弹出对话框中选择AnimationPlayer,然后单击创建按钮。
请添加图片描述

2.设置动画

选择AnimationPlayer节点,在动画面板中单击动画按钮,在下拉菜单中选择新建,弹出创建动画面板中录入Default名称。
请添加图片描述

将动画帧头调整到第一帧,然后选择PointLight2D节点,在其检查器中找到PointLight2D->Texture Scale属性,单击后面的添加关键帧按钮,这样就把Texture Scale属性添加到动画的第一帧了;同理将动画帧头拉倒最后一针,单击Texture Scale属性后面的添加关键帧按钮将该属性添加到最后一针;然后再动画面板中将帧头调整到中间位置,在PointLight2D节点检查器中将PointLight2D->Texture Scale属性设置为1.5,最后单击后面的添加关键帧按钮将该属性添加到动画中。然后在动画面板中开启循环和自动播放按钮,这样就完成了动画闪烁功能。
请添加图片描述

三、将灯光进行部署

切换到house场景,单击实例化子场景按钮,在实例化子场景对话框中选择light场景,最后单击打开按钮,就把灯光添加到house场景下了。
请添加图片描述

根据场景实际情况,调整大小,并放到房屋窗口位置,然后将Light2D->Color属性调整成黄色。具体情况如下:
请添加图片描述

单击运行项目按钮,我们看一下效果。
请添加图片描述

这样灯光就设置好了。另一个窗口的灯光,只需在house场景中将light节点复制一份(Ctrl+D快捷键)调整到合适位置即可。

四、添加主人公的点光源

窗口的灯光已经设置完毕,但是游戏中,主人公还是比较暗的,需要将主人公添加点光源,使主人公变的明亮一些,在游戏中明显看到。

1.添加点光源。

首先切换到Player场景,然后给跟节点添加PointLight2D子节点,将光源素材拖入到PointLigt2D->Texture属性。然后调整点光源到主人公身体的合适位置。
请添加图片描述

这样主人公就有点光源,在场景中就有了灯光效果。

2.设置阴影

切换到Player场景根节点,单击添加子节点按钮,在弹出对话框中选择LightOccluder2D节点,将该节点添加到场景中。然后在其检查器Occluder属性中选择新建OccluderPolygon2D,然后在选择该属性,最后在编辑场景中,主人公的脚步画出矩形区域,这个区域为灯光照射会产生阴影效果。
请添加图片描述

同理,给房屋的上方也添加LightOccluder2D结点,放置灯光找到房顶,这样不符合生活常识。
这样,这节就到这,下节再见!

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

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

相关文章

Vue中使用Lodash

Vue中使用Lodash 前言安装Lodash引用方法vue中使用1、cloneDeep 深拷贝2、uniq 数组去重3、uniqWith 数组对象去重 isEqual 深度比对4、intersection 提取数组相同元素5、chunk 数组切分6、compact去除假值7、reject:根据条件删除指定的值8、find:查找结果的第一个值9、filter:…

基于sortablejs实现拖拽element-ui el-table表格行进行排序

可以用原生的dragstart、drag、dragend、dragover、drop、dragleave实现这个效果&#xff0c;但是有现成的轮子就不要重复造了&#xff0c;看效果&#xff1a; <template><el-table :class"$options.name" :data"tableData" ref"table"…

Android Kotlin知识汇总(一)编程语言

在 2019 年 Google I/O 大会上宣布今后将优先采用 Kotlin 进行 Android 开发。Kotlin 是一种富有表现力且简洁的编程语言&#xff0c;不仅可以减少常见代码错误&#xff0c;还可以轻松集成到现有应用中。如果您想构建 Android 应用&#xff0c;建议您从 Kotlin 开始着手&#x…

java.lang.NoSuchMethodException异常解决

标题 java.lang.NoSuchMethodException异常的正确解决方法摘要&#x1f680; 异常介绍&#x1f9d0; 异常原因分析&#x1f6e0; 解决方法核对方法名称和参数使用正确的方法签名调整方法访问权限 &#x1f4dd; 解决步骤详解&#x1f5a5; 代码案例演示❓ QA部分Q: 如何区分jav…

使用canvas实现图纸标记及回显

图纸 图纸标记后的效果图 最近做的一个qms项目里面&#xff0c;需要前端在图纸上实现标记及标记后的内容还要能够回显&#xff0c;然后后端通过标记的点&#xff0c;去读取标记图纸的内容&#xff0c;如一些公式、数据之类的&#xff0c;目前实现的功能有 在图纸上面进行矩形…

【论文阅读】DiffSpeaker: Speech-Driven 3D Facial Animation with Diffusion Transformer

DiffSpeaker: 使用扩散Transformer进行语音驱动的3D面部动画 code&#xff1a;GitHub - theEricMa/DiffSpeaker: This is the official repository for DiffSpeaker: Speech-Driven 3D Facial Animation with Diffusion Transformer paper&#xff1a;https://arxiv.org/pdf/…

MyBatis基础使用

MyBatis 是一款优秀的持久层框架&#xff0c;它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO&#xff08;Plain Old Java Objects&am…

2024 年(第 12 届)“泰迪杯”数据挖掘挑战赛——A 题:生产线的故障自动识别与人员配置具体思路以及源代码分析

一、问题背景 随着新兴信息技术的大规模应用&#xff0c;工业生产线的智能化控制技术日益成熟。自动生产线 可以自动完成物品传送、物料填装、产品包装和质量检测等过程&#xff0c;极大地提高了生产效率和 产品质量&#xff0c;减少了生产成本。自动生产线融入故障智能报警…

HTML CSS入门:从基础到实践

&#x1f310; HTML & CSS入门&#xff1a;从基础到实践 &#x1f3a8; &#x1f4d6; 引言 HTML和CSS是构建网页的基石。HTML&#xff08;超文本标记语言&#xff09;用于创建网页内容&#xff0c;而CSS&#xff08;层叠样式表&#xff09;则用于美化这些内容。无论你是…

Blocks —— 《Objective-C高级编程 iOS与OS X多线程和内存管理》

目录 Blocks概要什么是BlocksOC转C方法关于几种变量的特点 Blocks模式Block语法Block类型 变量截获局部变量值__block说明符截获的局部变量 Blocks的实现Block的实质 Blocks概要 什么是Blocks Blocks是C语言的扩充功能&#xff0c;即带有局部变量的匿名函数。 顾名思义&#x…

Day18 Java学生管理系统

Day18 Java学生管理系统 一、需求分析 考虑的方面&#xff1a; 用户需求、功能需求、非功能性需求、约束条件、优先级和权衡、可追踪性、需求验证。 二、项目搭建 搭建学生管理系统 1、创建项目的main ;pojo ; sms ; utils包。 2、编写系统的 增&#xff08;涉及到扩容–…

17.WEB渗透测试--Kali Linux(五)

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 内容参考于&#xff1a; 易锦网校会员专享课 上一个内容&#xff1a;16.WEB渗透测试--Kali Linux&#xff08;四&#xff09;-CSDN博客 1.ettercap简介与使用…

【技术类-04】python实现docx表格文字和段落文字的“手动换行符(软回车)”变成“段落标记(硬回车)”

作品展示&#xff1a; 背景需求&#xff1a; 把python实现docx表格文字和段落文字的“手动换行符&#xff08;软回车&#xff09;”变成“段落标记&#xff08;硬回车&#xff09;合并在一起统计数量 【技术类-02】python实现docx段落文字的“手动换行符&#xff08;软回车&a…

一起玩儿3D打印机——03 Marlin固件的获取和安装环境的配置

摘要&#xff1a;本文介绍Marlin固件的获取和安装环境的配置 Marlin是一款开源软件&#xff0c;其主页为&#xff1a;https://marlinfw.org/&#xff0c;首页正中就是下载连接&#xff0c;如下图所示&#xff1a; 单击下面的“Download Marlin 2.1.2.2”按钮就会进入下载页面&a…

彻底学会系列:一、机器学习之梯度下降(1)

1 梯度下降概念 1.1 概念 梯度下降是一种优化算法&#xff0c;用于最小化一个函数的值&#xff0c;特别是用于训练机器学习模型中的参数&#xff0c;其基本思想是通过不断迭代调整参数的值&#xff0c;使得函数值沿着梯度的反方向逐渐减小&#xff0c;直至达到局部或全局最小…

AntV L7深圳智慧城市

本案例使用L7库和Mapbox GL JS构建深圳智慧城市。 文章目录 1. 引入 CDN 链接2. 引入组件3. 创建地图4. 创建场景5. 获取数据6. 创建面图层7. 演示效果8. 代码实现 1. 引入 CDN 链接 <!-- 1.引入CDN链接 --> <script src"https://unpkg.com/antv/l7"><…

Centos yum报错‘Connection timed out after 30002 milliseconds‘) 正在尝试其它镜像。解决办法

修改源后更新报错 我有两个Centos 一个7 一个8&#xff0c;疏忽在7上面配置了8的源后报错&#xff0c;通过下面的报错发现提示的是Centos7的源找不到&#xff0c;才意识到是不是配置错了源。 报错信息&#xff1a; http://mirrors.aliyun.com/centos/7/AppStream/x86_64/os/r…

Java 面向对象(类与对象 成员方法 方法重载 可变参数 构造方法 / 构造器 this关键字 包 访问修饰符)

目录 一、类与对象1. 类与对象的定义2. 类和对象的内存分配机制 二、成员方法1. 成员方法的定义2. 方法的调用机制3. 成员方法传参机制 三、方法重载四、可变参数1. 基本概念2. 基本语法3. 应用 五、 构造方法 / 构造器1. 特点2. 使用案例3. 对象创建的流程 六、this关键字1. 运…

【Linux】信号保存{sigset_t/sigpending/sigprocmask/bash脚本/代码演示}

文章目录 1.信号相关常见概念2.管理信号的数据结构3.初识sigset_t4.信号集操作函数4.1sigpending4.2sigprocmask4.2代码测试1.测试12.测试23.测试3 4.3bash 脚本文件 1.信号相关常见概念 信号相关动作&#xff1a;产生 发送 接收 阻塞 递达(处理) 实际执行信号的处理动作称为信…

0基础 三个月掌握C语言(11)

字符函数和字符串函数 为了方便操作字符和字符串 C语言标准库中提供了一系列库函数 接下来我们学习一下这些函数 字符分类函数 C语言提供了一系列用于字符分类的函数&#xff0c;这些函数定义在ctype.h头文件中。这些函数通常用于检查字符是否属于特定的类别&#xff0c;例如…