Godot Gdscript Patterns

作者 wshobson46891e7e60da无许可证收录于 2026年10月8日更新于 2026年10月8日

Master Godot 4 GDScript patterns including signals, scenes, state machines, and optimization. Use when building Godot games, implementing game systems, or learning GDScript best practices.

AI 生成的概览

关于 Godot 4 GDScript 模式的参考指南,涵盖游戏架构、信号、场景、状态机与优化。

功能
该技能提供面向生产的 Godot 4.x GDScript 游戏开发指导,涵盖架构、信号、场景、状态管理与性能优化。它讲解节点、场景、资源、信号和分组等核心概念,并给出带注释的 GDScript 示例,例如包含导出变量、信号与受伤处理的玩家类。更深入的模式文档放在随附的参考文件中,当主概述不够用时由智能体读取。
适用场景
适用于使用 Godot 4 开发游戏、用 GDScript 实现游戏系统、设计场景架构或管理游戏状态时。也适合 GDScript 性能调优和学习 Godot 最佳实践。
运行要求
不附带脚本,只有说明文档和两个供模型读取的参考文件。智能体需要能访问这些参考文件,并假定工作环境是 Godot 4 项目。

Godot GDScript Patterns

Production patterns for Godot 4.x game development with GDScript, covering architecture, signals, scenes, and optimization.

When to Use This Skill

  • Building games with Godot 4
  • Implementing game systems in GDScript
  • Designing scene architecture
  • Managing game state
  • Optimizing GDScript performance
  • Learning Godot best practices

Core Concepts

1. Godot Architecture

Node: Base building block├── Scene: Reusable node tree (saved as .tscn)├── Resource: Data container (saved as .tres)├── Signal: Event communication└── Group: Node categorization

2. GDScript Basics

gdscript
class_name Playerextends CharacterBody2D
# Signalssignal health_changed(new_health: int)signal died
# Exports (Inspector-editable)@export var speed: float = 200.0@export var max_health: int = 100@export_range(0, 1) var damage_reduction: float = 0.0@export_group("Combat")@export var attack_damage: int = 10@export var attack_cooldown: float = 0.5
# Onready (initialized when ready)@onready var sprite: Sprite2D = $Sprite2D@onready var animation: AnimationPlayer = $AnimationPlayer@onready var hitbox: Area2D = $Hitbox
# Private variables (convention: underscore prefix)var _health: intvar _can_attack: bool = true
func _ready() -> void:    _health = max_health
func _physics_process(delta: float) -> void:    var direction := Input.get_vector("left", "right", "up", "down")    velocity = direction * speed    move_and_slide()
func take_damage(amount: int) -> void:    var actual_damage := int(amount * (1.0 - damage_reduction))    _health = max(_health - actual_damage, 0)    health_changed.emit(_health)
    if _health <= 0:        died.emit()

Detailed patterns and worked examples

Detailed pattern documentation lives in references/details.md. Read that file when the navigation tier above is insufficient.

来源与署名

来源:wshobson/agents位于plugins/game-development/skills/godot-gdscript-patterns提交46891e7

许可证: 无许可证

内容归原作者所有。SourceWeft 从公开仓库中收录这些内容。

举报或申请下架