5. 创建2.5D游戏项目
创建2.5D游戏项目
Godot项目是什么?
想象一下,你要开始做一个手工艺品,你会先准备一个工作台,把所有需要的工具、材料都放在上面,对吧?Godot项目就像这样一个"工作文件夹",它把你游戏开发需要的所有东西——代码、图片、音乐、3D模型——都整理在一起。
更具体地说,Godot项目就是一个包含特殊配置文件(project.godot)的文件夹。这个配置文件告诉Godot引擎:"嘿,这是一个游戏项目,这是它的设置。"就像一本说明书,记录了你的游戏应该怎么运行。
创建新项目的步骤
第一步:打开项目管理器
启动Godot引擎后,你会看到"项目管理器"(Project Manager)窗口。这是Godot的"大门",所有项目都从这里开始。
第二步:点击"新建项目"
在项目管理器中,点击右上角的"新建"(New Project)按钮。
第三步:填写项目信息
会弹出一个对话框,需要你填写以下信息:
- 项目名称(Project Name):给你的游戏起个名字,比如"我的第一个2.5D游戏"
- 项目路径(Project Path):选择项目保存的位置,建议选择一个容易找到的文件夹
- 渲染器(Renderer):这是最重要的选择,我们稍后详细讲解
小贴士
项目路径不要包含中文或特殊字符,最好用英文和下划线,比如 my_first_2_5d_game。这样可以避免一些奇怪的问题。
第四步:选择渲染器
Godot 4.x 提供了三种渲染器:
- Forward+:最高画质,支持所有高级特效,但对电脑要求较高(就像游戏开"极致"画质)
- Mobile:性能优先,适合手机或配置较低的电脑(就像游戏开"流畅"画质)
- Compatibility:兼容性最好,适合老旧设备(就像游戏开"低配"画质)
对于2.5D游戏,我们推荐:
- 如果你的游戏要发布到PC或主机,选择 Forward+
- 如果你的游戏要发布到手机,选择 Mobile
第五步:创建并编辑
点击"创建并编辑"(Create & Edit)按钮,Godot会创建项目文件夹,并自动打开编辑器。
恭喜!你的第一个Godot项目诞生了!
项目设置(Project Settings)
创建项目后,我们需要调整一些重要设置。点击菜单栏的"项目"(Project)→"项目设置"(Project Settings),会打开一个设置窗口。
渲染器设置
如果你创建项目时选错了渲染器,可以在这里修改:
位置:Rendering → Renderer → Rendering Method
- Forward+:适合高质量PC游戏
- Mobile:适合手机游戏
- GL Compatibility:适合老旧设备
注意
修改渲染器后需要重启编辑器才能生效。
分辨率设置
位置:Display → Window
这里设置游戏窗口的大小和显示方式。
窗口大小(Viewport Width/Height)
设置游戏的基础分辨率。常见选择:
- 1920×1080(1080p):现代PC游戏的标准分辨率
- 1280×720(720p):适合低配置设备
- 1024×768:适合老旧显示器
对于2.5D游戏,我们推荐 1920×1080,这是目前最常见的显示器分辨率。
窗口模式(Mode)
- Windowed:窗口模式,可以调整大小
- Minimized:最小化启动
- Maximized:最大化启动
- Fullscreen:全屏模式
- Exclusive Fullscreen:独占全屏(性能更好)
开发时建议用 Windowed,方便调试。发布时可以让玩家自己选择。
拉伸模式(Stretch Mode)
这是一个非常重要的设置,决定了游戏在不同分辨率屏幕上的显示效果。
位置:Display → Window → Stretch
Mode:拉伸模式
- disabled:不拉伸,保持原始大小
- canvas_items:拉伸2D元素(适合纯2D游戏)
- viewport:拉伸整个视口(适合2.5D和3D游戏)
Aspect:宽高比处理
- ignore:忽略宽高比,强制拉伸(会变形)
- keep:保持宽高比,可能出现黑边
- keep_width:保持宽度,调整高度
- keep_height:保持高度,调整宽度
- expand:扩展视野,不出现黑边(推荐)
2.5D游戏推荐设置:
- Mode:
viewport - Aspect:
expand
这样游戏会在不同屏幕上自动适配,既不会变形,也不会出现黑边。
物理层配置
物理层(Physics Layers)就像给游戏中的物体贴上"标签",告诉引擎哪些物体之间会发生碰撞,哪些不会。
比如:
- 玩家应该和地面碰撞(不然会掉下去)
- 玩家应该和敌人碰撞(才能检测到攻击)
- 玩家不应该和背景装饰碰撞(不然会卡住)
位置:Layer Names → 3D Physics
点击每一层,给它起个有意义的名字:
Layer 1: player(玩家)
Layer 2: enemy(敌人)
Layer 3: ground(地面)
Layer 4: wall(墙壁)
Layer 5: collectible(可收集物品)
Layer 6: trigger(触发器)
Layer 7: projectile(子弹/投射物)
Layer 8: decoration(装饰物)为什么要命名?
默认情况下,物理层只显示"Layer 1"、"Layer 2"这样的名字,很难记住哪个是哪个。给它们起名字后,在设置碰撞时就能一眼看出来,大大减少出错的机会。
输入映射(Input Map)
输入映射就像给游戏设置"快捷键",把键盘、鼠标、手柄的按键和游戏中的动作关联起来。
位置:Input Map
点击顶部的"添加新动作"(Add New Action),创建以下动作:
移动动作
move_left(向左移动)
- 添加按键:A 键
- 添加按键:左方向键
- 添加手柄:左摇杆向左
move_right(向右移动)
- 添加按键:D 键
- 添加按键:右方向键
- 添加手柄:左摇杆向右
move_up(向上移动,用于俯视游戏)
- 添加按键:W 键
- 添加按键:上方向键
- 添加手柄:左摇杆向上
move_down(向下移动,用于俯视游戏)
- 添加按键:S 键
- 添加按键:下方向键
- 添加手柄:左摇杆向下
动作按键
jump(跳跃)
- 添加按键:空格键
- 添加手柄:A按钮(Xbox)/ X按钮(PlayStation)
attack(攻击)
- 添加按键:鼠标左键
- 添加按键:J 键
- 添加手柄:X按钮(Xbox)/ 方块按钮(PlayStation)
interact(交互)
- 添加按键:E 键
- 添加手柄:B按钮(Xbox)/ 圆圈按钮(PlayStation)
pause(暂停)
- 添加按键:ESC 键
- 添加手柄:Start按钮
输入映射的好处
使用输入映射后,你的代码中不需要写 if Input.is_key_pressed(KEY_A),而是写 if Input.is_action_pressed("move_left")。这样做的好处是:
- 代码更易读(一眼就知道是"向左移动")
- 玩家可以自定义按键(你只需要修改输入映射,不需要改代码)
- 支持多种输入设备(键盘、手柄、触摸屏)
其他重要设置
重力方向
位置:Physics → 3D → Default Gravity Vector
默认重力是向下的(0, -9.8, 0),这对大多数游戏都适用。但如果你要做一个重力可以改变方向的游戏,可以在这里调整。
帧率限制
位置:Application → Run → Max FPS
默认是0(不限制),游戏会尽可能跑高帧率。如果你想限制帧率(比如锁定60帧),可以设置为60。
注意
限制帧率可以降低功耗,但也可能让游戏在高刷新率显示器上显得不够流畅。
编辑器布局介绍
Godot编辑器分为几个主要区域,了解它们的作用能让你事半功倍。
场景树(Scene Tree)
位置:左上角
场景树显示当前场景中的所有节点(Node),就像一个"家族树",显示了节点之间的父子关系。
- 根节点:最顶层的节点,通常是场景的主节点
- 子节点:挂在根节点或其他节点下面的节点
比如一个玩家角色的场景树可能是这样的:
Player (CharacterBody3D)
├── MeshInstance3D(显示角色模型)
├── CollisionShape3D(碰撞体积)
├── Camera3D(摄像机)
└── AnimationPlayer(动画播放器)检查器(Inspector)
位置:右侧
检查器显示当前选中节点的所有属性,就像一个"属性面板"。你可以在这里修改节点的位置、旋转、缩放,以及各种特殊属性。
比如选中一个MeshInstance3D节点,检查器会显示:
- Transform(变换):位置、旋转、缩放
- Mesh(网格):使用哪个3D模型
- Material(材质):表面的颜色、纹理、光泽度等
3D视口(3D Viewport)
位置:中央
这是你的"工作台",可以在这里摆放和调整3D物体。
常用操作:
- 鼠标中键拖拽:平移视角
- 鼠标右键拖拽:旋转视角
- 鼠标滚轮:缩放视角
- 按住Shift+鼠标中键:快速平移
顶部工具栏:
- 选择模式(Q):选择节点
- 移动模式(W):移动节点
- 旋转模式(E):旋转节点
- 缩放模式(R):缩放节点
文件系统(FileSystem)
位置:左下角
文件系统显示项目文件夹中的所有文件,就像Windows的"资源管理器"或macOS的"访达"。
你可以在这里:
- 创建新文件夹
- 导入资源(图片、音频、3D模型)
- 创建新场景和脚本
- 拖拽文件到场景中
快速导入资源
直接把文件从电脑的文件管理器拖到Godot的文件系统面板,Godot会自动导入并转换格式。
底部面板
位置:底部(默认隐藏,点击标签页显示)
- 输出(Output):显示游戏运行时的打印信息
- 调试器(Debugger):调试代码,查看变量值
- 音频(Audio):管理音频总线
- 动画(Animation):编辑动画
- 着色器编辑器(Shader Editor):编写着色器代码
保存和版本控制建议
保存场景
在Godot中,场景是最基本的单位。你需要经常保存场景,避免丢失工作成果。
- 保存当前场景:Ctrl+S(Windows/Linux)或 Cmd+S(macOS)
- 另存为:Ctrl+Shift+S
养成好习惯
每做一个小改动就按一次Ctrl+S,这样即使编辑器崩溃,也不会丢失太多工作。
场景命名规范
给场景起一个清晰的名字,使用小写字母和下划线:
- ✅
player.tscn - ✅
enemy_goblin.tscn - ✅
level_01.tscn - ❌
Scene1.tscn(太模糊) - ❌
玩家.tscn(避免中文) - ❌
Player Scene.tscn(避免空格)
使用Git进行版本控制
Git就像游戏的"存档系统",可以记录你的每一次修改,还能回退到之前的版本。
为什么要用Git?
- 防止误删:不小心删了重要文件?Git可以恢复
- 记录历史:想知道上周改了什么?Git都记着呢
- 团队协作:多人开发时,Git能合并大家的代码
- 备份:推送到GitHub/GitLab,电脑坏了也不怕
初始化Git仓库
在项目文件夹中打开终端(命令行),输入:
git init创建.gitignore文件
Godot项目中有些文件不需要提交到Git(比如临时文件、导入缓存),创建一个.gitignore文件,内容如下:
# Godot 4+ specific ignores
.godot/
.import/
# Godot-specific ignores
*.translation
export.cfg
export_presets.cfg
# Imported translations (automatically generated from CSV files)
*.translation
# Mono-specific ignores
.mono/
data_*/
mono_crash.*.json
# System/tool-specific ignores
.DS_Store
Thumbs.db
*.swp
*.swo
*~提交第一个版本
git add .
git commit -m "初始化2.5D游戏项目"推送到远程仓库(可选)
如果你想把项目备份到GitHub或GitLab:
git remote add origin https://github.com/你的用户名/你的仓库名.git
git branch -M main
git push -u origin main推荐工具
如果你不熟悉命令行,可以使用图形化Git工具:
- GitHub Desktop:简单易用,适合新手
- GitKraken:功能强大,界面漂亮
- SourceTree:免费,功能全面
项目结构预览
创建项目后,你的文件夹结构应该是这样的:
my_first_2_5d_game/
├── .godot/ # Godot缓存文件(不要手动修改)
├── project.godot # 项目配置文件(重要!)
├── icon.svg # 项目图标
└── .gitignore # Git忽略文件(如果使用Git)随着开发的进行,你会添加更多文件夹和文件,我们会在下一章详细讲解如何组织项目结构。
常见问题
项目打不开怎么办?
- 检查
project.godot文件是否存在 - 检查文件路径是否包含中文或特殊字符
- 尝试用文本编辑器打开
project.godot,看是否损坏
编辑器很卡怎么办?
- 切换到Mobile渲染器(性能更好)
- 关闭不需要的编辑器功能(比如实时预览)
- 降低3D视口的显示质量
如何备份项目?
- 最简单的方法:复制整个项目文件夹
- 推荐方法:使用Git进行版本控制
- 云备份:使用GitHub、GitLab或云盘
小结
在这一章中,我们学习了:
- ✅ Godot项目的概念(就像一个工作文件夹)
- ✅ 如何创建新项目(选择渲染器、设置路径)
- ✅ 重要的项目设置(分辨率、拉伸模式、物理层、输入映射)
- ✅ 编辑器布局(场景树、检查器、视口、文件系统)
- ✅ 保存和版本控制(Git的基本使用)
现在你已经有了一个配置好的2.5D游戏项目,接下来我们将学习如何组织项目文件结构,让你的项目井井有条!
