算法艺术创作
algorithmic-art
通过代码和可调参数创作生成艺术与交互式视觉效果。
nodes-and-scenes【设计与创意】Design and manage Godot's node and scene system. Use this skill when creating scenes, designing node hierarchies, instancing scenes, setting up node communication with signals or groups, configuring autoloads/singletons, or implementing scene transitions.
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
Game (Node)
├── World (Node2D/Node3D)
│ ├── Player (CharacterBody2D)
│ │ ├── Sprite2D
│ │ ├── CollisionShape2D
│ │ └── Camera2D
│ ├── Enemies (Node2D)
│ │ ├── Enemy1 (CharacterBody2D)
│ │ └── Enemy2 (CharacterBody2D)
│ └── Environment (Node2D)
│ ├── TileMap
│ └── StaticBody2D
└── UI (CanvasLayer)
├── HealthBar (ProgressBar)
└── ScoreLabel (Label)
# Load scene
var enemy_scene = preload("res://scenes/enemy.tscn")
# Instance scene
var enemy = enemy_scene.instantiate()
enemy.position = Vector2(100, 100)
add_child(enemy)
@onready var player = $Player
func _process(delta):
player.health -= 10
# In Player.gd
signal health_changed(new_health)
func take_damage(amount):
health -= amount
health_changed.emit(health)
# In Game.gd
func _ready():
player.health_changed.connect(_on_player_health_changed)
func _on_player_health_changed(new_health):
update_health_bar(new_health)
# Add to group
enemy.add_to_group("enemies")
# Get all in group
var enemies = get_tree().get_nodes_in_group("enemies")
# Call method on group
get_tree().call_group("enemies", "take_damage", 10)
# Access anywhere
GameManager.score += 10
GameManager.save_game()
# Change scene
get_tree().change_scene_to_file("res://scenes/level2.tscn")
# With transition effect
func change_scene_with_fade(scene_path: String):
$AnimationPlayer.play("fade_out")
await $AnimationPlayer.animation_finished
get_tree().change_scene_to_file(scene_path)
$AnimationPlayer.play("fade_in")