44 lines
1.0 KiB
GDScript
44 lines
1.0 KiB
GDScript
tool
|
|
extends Sprite
|
|
|
|
class_name KeySprite
|
|
|
|
enum KeyType { Yellow,Blue,Red,Green }
|
|
|
|
# 钥匙类型
|
|
export(KeyType) var key_type = KeyType.Yellow setget set_key_type
|
|
|
|
func _init():
|
|
self.texture = load("res://images/mota.png")
|
|
self.region_enabled = true
|
|
|
|
func set_key_type(value):
|
|
key_type = value
|
|
match value:
|
|
KeyType.Yellow:
|
|
region_rect = Rect2(96,448,32,32)
|
|
KeyType.Blue:
|
|
region_rect = Rect2(128,448,32,32)
|
|
KeyType.Red:
|
|
region_rect = Rect2(160,448,32,32)
|
|
KeyType.Green:
|
|
region_rect = Rect2(192,448,32,32)
|
|
|
|
# 触碰钥匙回调
|
|
func _on_Area2D_body_entered(body):
|
|
if not body is PlayerKinematicBody2D:
|
|
return
|
|
match key_type:
|
|
KeyType.Yellow:
|
|
GameArchiveManager.player_info.yellow_key += 1
|
|
KeyType.Blue:
|
|
GameArchiveManager.player_info.blue_key += 1
|
|
KeyType.Red:
|
|
GameArchiveManager.player_info.red_key += 1
|
|
KeyType.Green:
|
|
GameArchiveManager.player_info.green_key += 1
|
|
GameArchiveManager.update_key_view()
|
|
queue_free()
|
|
GameArchiveManager.add_used_item(get_path())
|
|
AffectAudioPlayer.play_item()
|