Godot-官方-2D-游戏制作项目示例

参考 B 站教程

在 Godot 中输入汉字

首先将字体文件放入项目的根目录下, 以 label 节点为例,在右边栏往下拉:

在这个地方选择你添加进来的汉字.

注意还需打开 Setting 下的 Use Mipmaps 和 Use Filter.

创建 Player 场景

调整 Player 的大小可以在右边栏 Node2D -> Transform -> Scale 下调节.

关于角色的贴图为什么叫 Sprite (精灵), 因为如果不加上碰撞体,它就是虚的,无法接触到,所以是精灵.

防止对角线速度是 x, y 轴的叠加,需要先将速度 normalized.

动画的播放

停止动画有 stop() 方法.

需要记住,所有的节点的属性都可以用代码修改. 包括当前播放的是哪一个动画.

设置了速度之后还需要更新位置 position

设置碰撞体

可以在代码中直接关掉碰撞的检测. 用 disabled 属性.

设置敌人

一般来说,KinematicBody2D 一般用作 Player, 而 RigidBody2D 一般用作敌人.

把 RigidBody2D 中右边栏 Gravity Scale 调为 0,就不会自动往下掉.

敌人的随机状态利用随机数来处理.

可以先用 animation 属性来确定播放哪一个动画,再使用 play() 方法来播放.

VisibilityNotifier2D 这个节点有一个信号,可以让物体在离开屏幕时触发. 其描述就是 “Detects approximately when the node is visible on screen.”

设置主世界

利用 Timer 节点来控制敌人的生成, 游戏开始时的倒计时, 以及分数计数.

用 Position2D 节点来设定 Player 的初始位置. 其描述为 “It’s just like a plain Node2D, but it displays as a cross in the 2D editor at all times.” 也就是说和 Node2D 是一样的.

利用 Path2D 和 PathFollow2D 来为敌人的生成设定初始点. 其利用随机数在 PathFollow2D 对 Path2D 的 offset 上随机取一个点,然后从这个点生成敌人.

PI 表示 $\pi$

敌人是 RigidBody2D,因此可以直接在代码中设置线性速度.

一般添加 UI 放在 CanvasItem 节点下.

添加背景

使用 ColorRect 节点. 然后在 Layout 中选择 Full Rect 自动铺满.

添加音效

使用 AudioStreamPlayer 节点.

Godot 不支持 Mp3 格式,用 Wav 和 Ogg 格式.

添加粒子特效

使用 Particles2D 节点.

修改 particle 数量,右边栏 Amount, 这里改成 10.

需要新建材质: 右边栏 Process Material -> New ParticlesMaterial

需要将重力调为零: 右边栏 Gravity -> 0,0,0

调整重影从半透明到透明的颜色渐变: 右边栏 -> Color -> Color Ramp -> GradientTexture -> Gradient -> New Gradient 点击进入后看下方.

回到 Particles2D, 右边栏 Textures -> Texture, 添加图片. 将 Drawing -> Local Conrds 取消勾选.

又回到 Material 里面添加缩放曲线. Scale -> Scale Curve

1. Setting up the project

每一个游戏的运行窗口大小不同,需要提前设置.

开启 Stretch 下的 Mode -> 2D 和 Aspect -> keep. 可以将窗口大小保持在你设定的大小而不会随着拉伸变化.

创建三个独立的 scenes:

  • Player
  • Mod
  • HUD

还会有一个 Main scene.

2. Creating the player scene

独立出一个 Player scene 的好处好处在于可以单独测试.


Godot-官方-2D-游戏制作项目示例
http://example.com/2022/11/18/Godot-官方-2D-游戏制作项目示例/
作者
Jie
发布于
2022年11月18日
许可协议