feat: 增加NPC范鲸晶

- player场景增加RayCast2D
- 增加npc场景
- 增加NPC对话气泡
This commit is contained in:
2026-01-11 00:10:45 +08:00
parent ed7d89e39d
commit 8a5a4a0005
11 changed files with 211 additions and 1 deletions

View File

@@ -0,0 +1,29 @@
extends CharacterBody2D
signal interaction_happened(text)
@export var npc_name: String = "NPC"
@export var dialogue: String = "欢迎来到WhaleTown我是镇长范鲸鱼"
func _ready():
$Sprite2D.texture = preload("res://assets/characters/npc_286_241.png")
$Sprite2D.hframes = 4
$Sprite2D.vframes = 4
# Start Idle Animation
if has_node("AnimationPlayer"):
$AnimationPlayer.play("idle")
# Ensure interaction layer
collision_layer = 3 # Layer 1 & 2 (Blocking)
collision_mask = 3
func interact():
show_bubble(dialogue)
interaction_happened.emit(dialogue)
return null
func show_bubble(text):
var bubble = preload("res://scenes/ui/ChatBubble.tscn").instantiate()
add_child(bubble)
bubble.set_text(text)