首页 > 其他分享 >视差背景,GODOT游戏引擎学习笔记(五)

视差背景,GODOT游戏引擎学习笔记(五)

时间:2024-05-25 23:33:48浏览次数:26  
标签:GODOT 背景 笔记 我们 属性 speed 节点 视差 图片

背景图片资源

今天周六玩了一天,现在晚上来更新一下帖子。前面几节我们学习了创建一个人物精灵节点使其移动。这节我们来学习创建背景。会用到三个图片文件。我已经上传到csdn了,链接如下:

https://download.csdn.net/download/weixin_66990397/89356894?spm=1001.2014.3001.5501

视差背景创建

这次我们不用Node2D节点,用到的节点叫ParallaxBackground,然后我们在这个节点下面创建三个名为ParallaxLayer的节点

我们把链接里的压缩包下载下来,解压,得到本节要用的三张图片。直接把文件夹拖到右下角的res中,我们就可以使用者三张图片了

然后我们把图片直接拖到预览区,左边会多出一个节点,预览区也会出现我们的图片,这就是把图片添加到左边的节点里了

我们把每个图片分别拖到一个ParallaxLayer节点下,然后点击这些图片,观察右边的属性栏,可以看到几个常用的属性:

Centered是中心点,开启的话这张图片默认定位是通过中心点来判断的,例如这张图片在(0,0)位置,那么中心点就在(0,0)

Flip H和Flip V分别是图片水平翻转和垂直翻转

Position则是图片的位置

Scale则是缩放

我们把对三张图片进行操作,Centered取消打钩,Position位置调整成(0,0),缩放都调成3.6,这样就让这几张图片刚好与我们预览区域重合,可以看到我们三张图片组合成了一个完整的背景

然后我们选择每张图片对应的ParallaxLayer节点,调整其中的Mirroring属性,这个是镜像属性,我们给他的X属性(横坐标)调整成1150,因为我们现在图片是1150个长度一张图片,我们这样改了之后就会让我们的节点按1150个坐标复制一次,这样就实现了图片的向右不停复制延展

然后我们给ParallaxBackground添加一个脚本文件,我们要让背景进行移动

我们添加相应的代码,就可以实现背景不停向左移动的动画了,代码注释已给出

代码如下:

extends ParallaxBackground
var speed = 100#定义了一个名为speed的变量,并将其初始化为100。这个变量将用来控制背景的滚动速度。
func _ready():
	pass # Replace with function body.
func _process(delta):
	scroll_offset.x -= speed * delta#scroll_offset是ParallaxBackground类中用来控制背景滚动的属性
	             #.x表示沿着水平方向的偏移量。通过每帧减去speed乘以delta的值,可以实现不断向左移动的效果

我们运行之后发现动画效果已经实现,但是每张图片的移动效果都是一样的,体现不出近大远小的视差效果,我们可以调整每个ParallaxLayer节点的Scale属性,解锁之后对X进行单独调整,第一张调成0.2,第二张0.5,第三张可以保持1不变,这样实现了每张图片移动速度不同,从而满足了我们的视差背景

预览效果如下(今天GIF转换有点问题,找了个在线网站转换,有点不清晰不过能看出效果,大家见谅,后面有空会改)

小结

本节学习了如和添加图片,对图片进行缩放,调整使其能够与屏幕对应上,我们可以结合前几节学习的给这背景添加按钮或者加个会动的人物,这样离一个游戏又进了一步,今天在外面玩了一天所以更新比较晚,文中如有不足欢迎大家指出

标签:GODOT,背景,笔记,我们,属性,speed,节点,视差,图片
From: https://blog.csdn.net/weixin_66990397/article/details/139204880

相关文章

  • 开坑开坑,GODOT游戏引擎学习笔记(一)
    前言         本人重度游戏玩家,计科专业学生,玩了许多游戏已经逐渐电子羊尾,于是打算学习几个游戏引擎,一个方面是爱好,另一方面也是多掌握点技术。先打算从2D游戏开始学,目前引擎确定为GODOT,一个开源且适合新手的引擎。后续学习unity和虚幻等引擎也会继续更新,同时也会开......
  • Living-Dream 系列笔记 第58期
    T1第一问开桶统计即可。第二问我们采用双指针,不断地移动\(r\)直到包下含有最多单词数的区间,再移动\(l\)使答案更优并不断更新答案即可。具体有一些细节见代码。时间复杂度\(O(n\logn)\)。可以把代码中的两个map换成数组存hashvalue,时间可以降至\(O(n)\),但是我懒了......
  • TypeScript 学习笔记(十一):TypeScript 与微服务架构的结合应用
    TypeScript学习笔记(十一):TypeScript与微服务架构的结合应用1.引言在前几篇学习笔记中,我们探讨了TypeScript的基础知识、前后端框架的结合应用、测试与调试技巧、数据库以及GraphQL的结合应用。本篇将重点介绍TypeScript与微服务架构的结合应用,包括如何使用TypeSc......
  • TypeScript 学习笔记(十二):TypeScript 与 DevOps 的结合应用
    TypeScript学习笔记(十二):TypeScript与DevOps的结合应用1.引言在前几篇学习笔记中,我们探讨了TypeScript的基础知识、前后端框架的结合应用、测试与调试技巧、数据库、GraphQL以及微服务架构的结合应用。本篇将重点介绍TypeScript与DevOps的结合应用,包括如何在D......
  • [论文笔记] Conversing with Copilot: Exploring Prompt Engineering for Solving CS1
    Abstract:Copilot及其他辅助编程的人工智能模型被广泛使用,这篇文章探索了Copilot在哪些任务上表现不佳,prompt在过程中的作用等几个问题。Introduction:Question1:Copilot在CS1programmingproblems上的表现如何?Question2:当Copilot最初失败后,prompt的修改如何......
  • 【计算理论】【《计算理论导引(原书第3版)》笔记】第〇章:绪论
    文章目录@[toc]第〇章:绪论0.1|自动机、可计算性与复杂性计算复杂性理论可计算性理论自动机理论0.2|数学概念和术语集合关系等价关系图简单路径连通图圈强连通图字符串和语言字母表上的字符串空串......
  • 论文笔记:Inf-DiT: Upsampling Any-Resolution Image with Memory-Efficient Diffusion
    论文链接:[2405.04312]Inf-DiT:UpsamplingAny-ResolutionImagewithMemory-EfficientDiffusionTransformer(arxiv.org)论文代码:THUDM/Inf-DiT:OfficialimplementationofInf-DiT:UpsamplingAny-ResolutionImagewithMemory-EfficientDiffusionTransformer(gi......
  • Vue3实战笔记(43)—Vue3组合式API下封装可复用ECharts图表组件
    文章目录前言一、封装echart图标钩子二、使用步骤总结前言接上文,已经安装好了ECharts,开始封装组件方便使用。一、封装echart图标钩子首先应用我们之前学习的钩子方式,在hooks目录下创建一个名为useECharts.js的文件,用于封装ECharts的逻辑:import{ref,onMo......
  • 英语学习笔记25——Mrs. Smith‘s kitchen
    Mrs.Smith’skitchen史密斯太太的厨房词汇VocabularyMrs.夫人【已婚】复习:Mr.先生+全名/姓Mrs.夫人+全名/丈夫的姓Miss小姐(未婚)+全名/姓Ms.女士+全名/姓查看婚姻状况,可以观察对方戒指。kitchenn.厨房发音类似:chicken......
  • 《拯救大学生课设不挂科第二期之Windows11下安装VC6.0(VC++6.0)与跑通Hello World C语言
    背景与目标人群:大学第一次学C语言的时候,大部分老师会选择VC6这个编辑器。但由于很多人是新手,第一次上大学学C语言。老师要求VC6.0(VC++6.0)写C语言跑程序可能很多人还是第一次接触电脑。需要安装VC6这个编辑器并且编译C语言程序,但是不怎么会装。博主结合自己当时学习与现在......