Godot引擎入门:编写第一个GDScript脚本

Godot引擎入门:编写第一个GDScript脚本

godot-docs Godot Engine official documentation godot-docs 项目地址: https://gitcode.com/gh_mirrors/go/godot-docs

前言

本文将带领初学者在Godot引擎中完成第一个脚本编写实践。我们将创建一个简单的2D场景,让Godot图标在屏幕上旋转移动。通过这个实践,您将掌握Godot脚本编程的基本概念和工作流程。

环境准备

首先需要创建一个新项目,并准备以下资源:

  • 一个Sprite2D节点作为场景根节点
  • Godot图标(icon.svg)作为纹理资源

创建Sprite2D节点的步骤:

  1. 在场景面板点击"添加节点"按钮
  2. 搜索并选择Sprite2D节点类型
  3. 在检查器面板中为Texture属性设置Godot图标

创建脚本

右键点击Sprite2D节点,选择"附加脚本"。在弹出窗口中:

  • 语言选择GDScript
  • 模板选择"Object: Empty"
  • 保留其他默认设置

创建后,脚本编辑器会自动打开新创建的脚本文件,其中包含基本的类定义:

extends Sprite2D

这行代码表示当前脚本继承自Sprite2D类,可以获得Sprite2D的所有属性和方法。

基础概念

脚本结构

GDScript脚本本质上是一个类,extends关键字指定了继承关系。Godot采用节点树结构组织场景,每个脚本通常附加到特定类型的节点上。

生命周期方法

Godot提供了几个重要的虚方法(virtual functions),开发者可以重写这些方法来实现自定义行为:

  1. _init(): 构造函数,节点创建时自动调用
  2. _process(delta): 每帧调用,delta参数表示上一帧到当前帧的时间间隔

实践开发

Hello World示例

我们先实现一个简单的功能验证脚本是否正常工作:

func _init():
    print("Hello, world!")

运行场景后,在输出面板可以看到打印的信息。这验证了脚本的基本功能正常。

旋转动画

接下来我们让图标旋转起来。首先定义两个成员变量:

var speed = 400  # 移动速度(像素/秒)
var angular_speed = PI  # 旋转速度(弧度/秒)

然后实现_process方法来实现旋转:

func _process(delta):
    rotation += angular_speed * delta

这里的关键点:

  • rotation是继承自Node2D的属性,控制节点的旋转角度
  • 使用delta使动画速度与帧率无关
  • 角度单位默认使用弧度制

移动动画

在旋转基础上,我们添加移动功能:

func _process(delta):
    rotation += angular_speed * delta
    
    var velocity = Vector2.UP.rotated(rotation) * speed
    position += velocity * delta

代码解析:

  1. Vector2.UP表示向上的单位向量
  2. rotated()方法根据当前旋转角度调整方向
  3. position属性控制节点的位置
  4. 同样使用delta保证移动速度一致

完整脚本

以下是完成后的完整脚本代码:

extends Sprite2D

var speed = 400
var angular_speed = PI

func _process(delta):
    rotation += angular_speed * delta
    
    var velocity = Vector2.UP.rotated(rotation) * speed
    position += velocity * delta

进阶思考

  1. 坐标系系统:Godot使用基于OpenGL的坐标系,原点(0,0)位于左上角,x向右增加,y向下增加
  2. 向量运算:Godot提供了丰富的向量运算方法,如normalized()、length()、angle_to()等
  3. 性能考虑:对于复杂场景,应注意避免在_process中进行昂贵计算

总结

通过本教程,您已经学会了:

  1. 创建和附加脚本到节点
  2. 使用_process实现动画效果
  3. 处理与帧率无关的运动
  4. 基本的2D向量运算

这为后续开发更复杂的游戏功能奠定了基础。建议尝试修改参数观察不同效果,加深对Godot脚本系统的理解。

godot-docs Godot Engine official documentation godot-docs 项目地址: https://gitcode.com/gh_mirrors/go/godot-docs

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

龚隽娅Percy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值