找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

5072

积分

0

好友

691

主题
发表于 3 小时前 | 查看: 3| 回复: 0

你好,我是你的Godot向导!今天开始,我们将一起用Godot引擎制作一个完整的五子棋游戏。你可能听说过Unity、Unreal这些大名鼎鼎的游戏引擎,但Godot不仅完全免费开源,而且极其轻量(安装包只有几十MB),对初学者特别友好!

最棒的是什么?学完这个系列,你不仅能做出一个可以和朋友对战的五子棋游戏,还能掌握游戏AI开发的核心技能。想象一下,你亲手编写的AI不仅能随机落子,还能像高手一样思考、设局、进攻!

为什么选择Godot?

  • 零费用:完全免费,无任何订阅费或分成
  • 开源透明:所有代码开放,有问题随时查看源码
  • 轻量高效:安装包仅80MB左右,低配电脑也能流畅运行
  • 脚本友好:使用Python风格的GDScript,学习曲线平缓
  • 国产游戏也在用:《戴森球计划》的部分功能就是用Godot开发的!

准备好了吗?让我们开始今天的冒险!

第一步:下载和安装Godot

Windows系统安装(最常用)

  1. 访问官方网站:打开浏览器,输入 https://godotengine.org
  2. 点击下载按钮:在首页找到醒目的“Download”按钮,在这里你可以下载到最新版,或者找到某个特定的历史版本。

Godot引擎官网首页下载4.5.1版本

  1. 选择版本:推荐选择 Standard version (64-bit),版本号选择最新的稳定版(比如4.2.2、4.2.1)。(注意:本教程使用Godot 4.2版本,请确保版本匹配)

Godot下载存档页面,稳定版4.2.2、4.2.1选项

Godot 4.2.2稳定版下载页面,支持多平台

  1. 下载后解压:不需要安装!直接解压zip文件到一个你容易找到的文件夹。例如:D:\program files\Godot_v4.2.2

Windows文件资源管理器中Godot v4.2.2文件夹内的exe文件

  1. 创建桌面快捷方式:将解压后的 godot.exe 发送到桌面快捷方式

💡 小贴士:Godot是“便携式”的,不写注册表,你可以把它放在U盘里随身携带!

macOS系统安装

同样从官网下载macOS版本(.dmg文件),打开dmg文件,将Godot图标拖到“Applications”文件夹,首次打开时可能需要右键选择“打开”绕过安全限制。

Linux系统安装

下载Linux版本(.xz压缩包),解压并赋予执行权限:

tar -xf Godot*.tar.xz
chmod +x godot
./godot

第二步:第一次启动Godot

双击Godot图标启动后,你会看到这个界面:

Godot项目管理器v4.2.2初始界面

这是项目管理器,所有Godot项目都在这里管理。现在它还空荡荡的,因为我们还没有创建任何项目。

让我们仔细观察一下界面布局:

  • 左侧:项目列表区域
  • 左上角:项目创建和导入按钮
  • 右下角:引擎版本和设置选项

项目管理器界面功能标注

第三步:创建第一个Godot项目

点击右上角的 【 + 新建 】 按钮,开始我们的第一个项目!

项目设置步骤:

  • 项目名称:输入 GomokuFiveInARow(五子棋的英文名)
  • 项目路径:选择一个文件夹存放项目,我是使用这样的路径(建议):E:/godot/GomokuFiveInARow。当然你也可以使用类似这样的路径:C:\Users\你的名字\Documents\GodotProjects\GomokuFiveInARow\
  • 渲染器设置
    • 保持默认的 Forward+ 即可
    • 这是Godot 4.0的新渲染器,性能优秀
  • 项目配置
    • 项目名称: GomokuFiveInARow
    • 渲染器: Forward+ (兼容性较好)
    • 版本控制: None (初学暂时不需要)
  • 点击【 创建并编辑 】:创建项目并立即进入编辑器!

Godot新建项目窗口,设置名称和路径

第四步:认识Godot编辑器界面

进入编辑器后,你可能会觉得界面有点复杂。别担心!我们一步步分解:

Godot编辑器初始空场景界面

核心区域介绍:

  1. 场景面板(左上):显示当前场景的节点树。节点是Godot的核心概念,一切皆节点;节点可以包含其他节点,形成父子关系。
  2. 文件系统面板(左下):项目文件管理器。类似Windows资源管理器;所有资源(图片、脚本、场景)都在这里。
  3. 主视图(中间):2D/3D编辑区。2D游戏:显示2D画布;3D游戏:显示3D空间。我们的五子棋是2D游戏。
  4. 检查器面板(右侧):节点属性编辑器。选中节点后,在这里修改属性。位置、大小、颜色等都在这里设置
  5. 底部面板:输出、调试、动画等工具。最重要的:输出窗口,显示程序运行信息。

Godot编辑器各区域功能标注

简单比喻理解Godot:

Godot项目 ≈ 一个剧团
场景 ≈ 一幕戏
节点 ≈ 演员
脚本 ≈ 演员的台词和动作

第五步:创建第一个场景和节点

让我们实际操作一下,建立对Godot的“手感”!

  1. 创建根节点:在场景面板点击【 其他节点 】按钮,搜索 "Node2D" 并添加。这就是我们的场景根节点

Godot中搜索并添加Node2D节点的步骤

  1. 重命名节点:选中刚创建的节点,按【 F2 】键或右键选择 【 重命名 】,输入名称:MainScene

右键菜单重命名Node2D节点为MainScene

  1. 保存场景:保存的快捷键为【 Ctrl+S 】,在【 场景保存为... 】的弹出框体中,【 文件 】的输入框中输入:main_scene.tscn,然后按 【 保存 】按键。(注意:.tscn是Godot的场景文件格式)

场景保存为main_scene.tscn

  1. 添加一个精灵节点:右键点击MainScene节点,选择 【 添加子节点 】

右键添加子节点菜单

搜索 "Sprite2D" 并添加

选中Sprite2D并创建

  1. 设置精灵颜色:选中 Sprite2D 节点,在【 检查器 】面板找到【 Texture 】,点击 【 <空> 】 → 【 新建AtlasTexture 】 → 【 新建ImageTexture 】点击新建的ImageTexture,设置颜色为红色

Sprite2D纹理属性下拉新建AtlasTexture

在AtlasTexture基础上新建ImageTexture

  1. 调整位置:在检查器找到【 Position】,设置X: 400, Y: 300(这是窗口中心位置)

节点Transform中的Position属性

第六步:编写第一个GDScript脚本

现在到了最激动人心的部分——写代码!别紧张,GDScript非常简单,像Python一样易读。

  1. 创建脚本:右键点击MainScene根节点,选择"Attach Script"

给MainScene节点添加脚本

保持默认设置,点击"创建"

设置节点脚本对话框,语言GDScript

  1. 认识脚本编辑器
extends Node2D

# 这是单行注释

"""
这是多行注释
可以写很多行说明
"""

# 当节点第一次进入场景树时调用
func _ready():
    print("Hello, Godot! 我的第一个脚本运行了!")
    print("五子棋项目启动成功!")

# 每帧调用一次(默认60次/秒)
func _process(delta):
    # delta是上一帧到这一帧的时间间隔
    pass  # pass表示"什么都不做"

脚本编辑器中编写的hello world代码

  1. 运行测试:点击编辑器右上角的播放按钮 ▶️ 如果提示选择主场景,选择 main_scene.tscn,观察底部输出窗口,你应该能看到:
Hello, Godot! 我的第一个脚本运行了!
五子棋项目启动成功!

恭喜!你刚刚运行了第一个Godot程序!🎉

输出窗口显示运行结果

第七步:深入了解GDScript基础

GDScript是Godot的专用脚本语言,语法类似Python。让我们学习一些基础知识:

1. 变量和数据类型

# 变量声明和赋值
var player_name = "小明"  # 字符串
var player_score = 0      # 整数
var game_speed = 1.5      # 浮点数
var is_game_over = false  # 布尔值

# 类型注解(可选,但推荐)
var board_size: int = 15  # 明确指定为整数
var current_player: String = "black"

2. 基本运算

# 算术运算
var a = 10 + 5    # 加
var b = 10 - 5    # 减  
var c = 10 * 5    # 乘
var d = 10 / 3    # 除(结果是浮点数)
var e = 10 % 3    # 取余
var f = 10 ** 2   # 幂运算

# 比较运算
var is_equal = (10 == 5)      # false
var is_greater = (10 > 5)     # true
var is_not_equal = (10 != 5)  # true

3. 控制流程

# 条件判断
var score = 85

if score >= 90:
    print("优秀")
elif score >= 60:
    print("及格")
else:
    print("不及格")

# 循环
for i in range(5):  # 0, 1, 2, 3, 4
    print("当前数字:", i)

var count = 0
while count < 3:
    print("计数:", count)
    count += 1  # 相当于 count = count + 1

4. 数组和字典

# 数组(有序列表)
var pieces = ["黑子", "白子", "空位"]
print(pieces[0])  # 输出:黑子
pieces.append("新棋子")  # 添加元素

# 字典(键值对)
var player = {
    "name": "张三",
    "score": 100,
    "is_ai": false
}
print(player["name"])  # 输出:张三

第八步:小实践 - 创建一个简单的计数器

让我们用刚学的知识做一个小练习:

  1. 修改 main_scene.gd 脚本
extends Node2D

# 定义变量
var counter: int = 0
var counter_label: Label  # 我们会稍后获取这个节点

# 节点准备就绪时调用
func _ready():
    # 获取Label节点
    counter_label = $Label  # $表示获取子节点

    # 设置初始文本
    update_counter_text()

    print("计数器初始化完成!")

# 更新显示文本
func update_counter_text():
    counter_label.text = "计数: " + str(counter)

# 每帧调用
func _process(delta):
    # 我们暂时不用这个函数
    pass

# 自定义函数:增加计数
func increase_counter():
    counter += 1
    update_counter_text()
    print("计数器增加到:", counter)

# 自定义函数:重置计数
func reset_counter():
    counter = 0
    update_counter_text()
    print("计数器已重置")
  1. 添加UI节点

    • 在场景中删除之前的Sprite2D
    • 添加一个Label节点(用于显示文字)
    • 添加一个Button节点(用于点击)
    • 将按钮文本改为"点击计数"
  2. 连接信号

    • 选中Button节点
    • 在检查器找到"pressed"信号
    • 双击它,连接到MainScene节点
    • 选择 increase_counter 函数
  3. 运行测试

    • 点击播放按钮
    • 点击按钮,观察计数变化

常见问题解答

  • Q: 为什么我的脚本运行没有输出?
    A: 检查是否保存了脚本,是否连接了正确的场景,查看输出窗口是否有错误信息。

  • Q: Godot支持哪些编程语言?
    A: 主要支持GDScript、C#、C++(通过GDExtension)。对于初学者,GDScript是最佳选择。

  • Q: 项目文件应该放在哪里?
    A: 建议放在固态硬盘(SSD)上,路径不要有中文或特殊字符。

  • Q: Godot有中文文档吗?
    A: 有的!访问 Godot中文文档 获取中文资源。

下期预告

在下一篇教程中,我们将:

  1. 设计五子棋的棋盘网格
  2. 学习如何绘制基本图形
  3. 实现鼠标点击检测
  4. 创建黑白棋子

你将亲手做出一个可以点击落子的棋盘原型!

学习检查小测

测测你今天掌握了多少?答案在下面,但先自己思考哦!

选择题(每题2分,共10分)

Godot引擎的主要特点是什么?
A) 收费但功能强大
B) 免费开源且轻量
C) 只支持3D游戏开发
D) 需要高性能电脑

GDScript的语法最像哪种语言?
A) Java
B) C++
C) Python
D) JavaScript

在Godot中,一切的基础是什么?
A) 类(Class)
B) 对象(Object)
C) 节点(Node)
D) 场景(Scene)

如何获取一个名为"Player"的子节点?
A) get_node("Player")
B) $Player
C) find_node("Player")
D) 以上都对

脚本中哪个函数在节点进入场景时自动调用?
A) _start()
B) _init()
C) _ready()
D) _enter()

答案与解析

答案:B

解析:Godot是免费开源且非常轻量的游戏引擎,安装包只有几十MB。

答案:C

解析:GDScript的语法设计借鉴了Python,简洁易读,适合游戏开发快速迭代。

答案:C

解析:Godot使用节点(Node)作为一切的基础构建块,场景是由节点组成的树形结构。

答案:D

解析:所有方法都可以获取子节点,$Player是get_node("Player")的简写形式,更常用。

答案:C

解析:_ready()函数在节点及其所有子节点都进入场景树后被调用,常用于初始化操作。

得分评价:

  • 10分:优秀!你完全掌握了本篇内容
  • 8分:良好!复习一下错题就能掌握
  • 6分:及格!建议重新阅读代码示例部分
  • 6分以下:别灰心!实际操作一遍就能理解

今日总结

今天我们一起完成了:

  • ✅ 下载并安装Godot引擎
  • ✅ 创建第一个Godot项目
  • ✅ 认识编辑器界面
  • ✅ 创建场景和节点
  • ✅ 编写第一个GDScript脚本
  • ✅ 学习GDScript基础语法

你已经迈出了游戏开发的第一步!保存好今天的项目,下一篇我们将正式开始五子棋游戏的开发。

遇到问题不要怕:Godot有非常活跃的社区,你可以在Godot中文社区或GitHub Discussions提问。记得将项目文件备份到网盘或GitHub。

本项目的代码可以在这里下载:https://github.com/seancheng33/GomokuFiveInARow

篇1结束 | 下一篇:《【Godot五子棋】02-棋盘绘制与鼠标交互,30行代码实现可点击落子!》

如果你对游戏开发感兴趣,云栈社区 汇聚了许多技术爱好者,欢迎来交流学习心得。




上一篇:Agent Skills 实战解析:从 PPT 生成到自动发推文,源码级复刻
下一篇:Python找最大数代码的认知陷阱:并列、浮点与错判的真正赢家
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-4-24 23:46 , Processed in 1.021268 second(s), 41 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表