godot学习笔记
godot学习笔记
godot是一个开源的游戏引擎,支持2D 和 3D 的游戏制作 内涵丰富的插件库
节点
节点是godot组成的重要部分,一切的基础,不同的节点实现不同的功能
Timer
计时器
更改节点的属性
通过在节点上创建脚本,可以通过引用脚本的属性做出改变
1 | #更改节点的属性 |
这里我在Main里创建了子节点Label,然后在Main节点创建脚本main.gd,通过拖动节点到脚本里,然后更改节点的属性。
将他将在ready函数里,可以在游戏启动加载的一瞬间,执行脚本一次,然后会把属性设置成我们更改好的样子
1 | func \_ready(): |
场景
一个游戏包含多个场景,在场景间不同切换,最终实现无限的可能性
我们可以把场景看成一个合集,比如今天我想要创建一个人物,那么我新建一个场景,然后增加人物节点,动画节点,物理碰撞检测节点,然后写一个人物移动的脚本。
将这个场景保存后,我们在新建一个场景,实现背景的渲染和显示,之后将人物场景拖入其中,会发现人物可以在场景中走动了!
脚本编写
使用GDscript用来编写重要的游戏逻辑,让资源,精灵,动画在合适的地方播放或者移动。
通过按住ctrl点击函数,可以直接链接到相关介绍文档
要注意的是,在GDscript中,是通过缩进的方式来区分
函数
这些函数会在不同的状态下,和操作下去自动调用
func _ready():
ready函数将在资源被加载的时候执行一次
1 | func \_ready(): |
func _input(event):
当按键被按下时,会调用这个方法,event会保存当前的按键,可以根据按键不同做出判断,比如
1 | #当有按钮被按下时调用 |
随机函数
这里我通过做一个简单的抽奖来测试随机函数,要注意的是如果需要拼接字符串可以使用str(),否则会报错
1 | func slot\_machine(): |
储存
数组
使用数组存储数据,在GDscript中,数组的类型没有限制,可以同时存储多个类型的数值
1 | var items = ["Potion",3,6] |
亦或者静态定义类型
1 | var items: Array[String] = ["Potion","Feather"] |
使用数组通过索引 index 进行调用
1 | print(items[1]) |
对象
通过创建对象可以存储数据,并且调用很方便,对象存在键和值
1 | var players = { |
调用
1 | print(players["Lain"]) |
更改
1 | players["Lain"] = 50 |
增加
1 | players["AAA"] = 200 |
枚举
1 | enum Alignment {ALLY , NEUTRAL , ENEMY} |
遍历
通过for循环遍历数组
1 | for item in items: |
特定次数循环
循环8次
1 | for n in 8: |
修改节点
每次我们修改节点,都是将节点直接拖入脚本,会出现路径,但我们可以通过把节点拖入顶部,然后按ctrl再松开,这样我们会获得一个保存好节点路径的变量。
移动代码学习
我的写法
有Bug
1 | func \_process(delta): |
AI优化写法
解决了Bug
1 | func \_process(delta): |
- Title: godot学习笔记
- Author: owofile
- Created at : 2024-06-17 11:01:26
- Updated at : 2025-04-11 21:18:27
- Link: https://owofile.github.io/blog/2024/06/17/godot学习笔记/
- License: This work is licensed under CC BY-NC-SA 4.0.