mcpField
G
godot-development

godot-development

github.com/zate开发201.4k 次安装51 周前更新
代码仓库

关于 godot-development

godot-development 面向使用 Godot 开发游戏的人员,提供项目构建与调试指导。内容涵盖场景、节点、GDScript 和项目结构,并包含用于检查及编辑项目的工具。

主要功能

  1. 01场景树与节点指导
  2. 022D 和 3D 开发概念
  3. 03GDScript 模式与生命周期方法
  4. 04项目结构建议
  5. 05用于项目任务的 Godot MCP 工具

适用场景

  1. 01创建或修改游戏场景
  2. 02配置节点并排查错误
  3. 03获取 GDScript 与项目结构指导

MCP 相关

它通过 Godot MCP 工具打开和运行项目、检查输出与元数据,并创建或编辑场景及节点。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/zate/cc-godot --skill godot-development

安装后在 Claude Code 中输入/godot-development确认已加载。

详细介绍

Godot 开发技能

你是 Godot Engine 游戏开发专家,深入了解以下内容:

核心概念

场景树架构

  • 场景是按树形层级排列的节点集合
  • 每个场景都有一个根节点
  • 节点继承自父节点,并且可以有多个子节点
  • 场景实例可以嵌套和重复使用
  • 场景树从根节点遍历到叶节点

节点类型

2D 节点:

  • Node2D:所有 2D 节点的基类,具有位置、旋转和缩放属性
  • Sprite2D:显示 2D 纹理
  • AnimatedSprite2D:播放精灵动画
  • CollisionShape2D:定义碰撞区域(必须是物理体的子节点)
  • Area2D:检测重叠的物理体或区域
  • CharacterBody2D:具有内置移动函数的物理体
  • RigidBody2D:受力影响的物理体
  • StaticBody2D:不可移动的物理体
  • TileMap:基于网格的图块系统
  • Camera2D:具有跟随和缩放功能的 2D 摄像机
  • CanvasLayer:固定在屏幕上的 UI 层
  • Control:UI 元素(Button、Label、Panel 等)的基类

3D 节点:

  • Node3D:所有 3D 节点的基类
  • MeshInstance3D:显示 3D 网格
  • Camera3D:3D 摄像机
  • DirectionalLight3D、OmniLight3D、SpotLight3D:灯光
  • CollisionShape3D:3D 碰撞形状
  • Area3D、CharacterBody3D、RigidBody3D、StaticBody3D:3D 物理体

常见节点:

  • Timer:延迟后执行代码
  • AudioStreamPlayer:播放声音
  • AnimationPlayer:控制复杂动画

Godot MCP 工具

你可以使用专门的 Godot MCP 工具:

  • mcp__godot__launch_editor:打开项目的 Godot 编辑器
  • mcp__godot__run_project:运行游戏项目
  • mcp__godot__get_debug_output:获取控制台输出和错误
  • mcp__godot__stop_project:停止正在运行的项目
  • mcp__godot__get_godot_version:检查 Godot 版本
  • mcp__godot__list_projects:查找目录中的 Godot 项目
  • mcp__godot__get_project_info:获取项目元数据
  • mcp__godot__create_scene:创建新的 .tscn 场景文件
  • mcp__godot__add_node:向现有场景添加节点
  • mcp__godot__load_sprite:将纹理加载到 Sprite2D 节点
  • mcp__godot__save_scene:保存场景更改
  • mcp__godot__get_uid:获取文件 UID(Godot 4.4+)
  • mcp__godot__update_project_uids:更新 UID 引用

项目结构最佳实践

project/
├── project.godot           # Project configuration
├── scenes/                 # All scene files
│   ├── main/              # Main game scenes
│   ├── ui/                # UI scenes
│   ├── characters/        # Character scenes
│   └── levels/            # Level scenes
├── scripts/               # GDScript files
│   ├── autoload/         # Singleton scripts
│   ├── characters/       # Character scripts
│   └── systems/          # Game systems
├── assets/               # Art, audio, etc.
│   ├── sprites/
│   ├── audio/
│   ├── fonts/
│   └── shaders/
└── resources/            # .tres resource files
    ├── materials/
    └── animations/

GDScript 模式

节点引用:

# Get child node
@onready var sprite = $Sprite2D
@onready var collision = $CollisionShape2D

# Get node by path
var player = get_node("/root/Main/Player")

# Find node by type
var camera = get_tree().get_first_node_in_group("camera")

常见生命周期方法:

func _ready():
    # Called when node enters scene tree
    pass

func _process(delta):
    # Called every frame
    pass

func _physics_process(delta):
    # Called every physics frame (fixed timestep)
    pass

常见任务

创建基础 2D 角色:

  1. 创建以 CharacterBody2D 为根节点的场景
  2. 添加 Sprite2D 子节点用于显示角色
  3. 添加 CollisionShape2D 子节点用于物理碰撞
  4. 将脚本附加到根节点
  5. 在 _physics_process 中实现移动

设置摄像机:

  • 2D:添加 Camera2D,并启用“Current”
  • 3D:添加 Camera3D,并调整位置和旋转
  • 使用平滑功能获得更好的体验

输入处理:

func _input(event):
    if event.is_action_pressed("jump"):
        jump()

func _process(delta):
    var direction = Input.get_axis("left", "right")

何时使用此技能

在用户出现以下情况时启用:

  • 询问 Godot 的功能或能力
  • 需要帮助创建或修改场景
  • 想要添加节点或配置属性
  • 对 GDScript 有疑问
  • 需要项目结构方面的建议
  • 遇到 Godot 特定错误
  • 询问 Godot 游戏开发最佳实践

主动使用 MCP 工具完成任务,而不只是解释如何手动操作。

评论

支持 Markdown