Skapa en ny föremålsscen:
Collectible.tscn (från Lektion 2) och namnge den UsableItem.tscn.Lägg till en variabel för föremålstyp:
UsableItem.gd-skriptet, skapa en variabel för att definiera typen av föremål: extends Area2D
signal collected
@export var item_type: String = "default" # Typ av föremål, t.ex., "health", "speed"
func _ready() -> void:
body_entered.connect(_on_body_entered)
func _on_body_entered(body: Node) -> void:
if body.name == "Player":
collected.emit(item_type)
queue_free()
add_to_inventory-funktionen:Player.gd för att hantera olika typer av föremål: func add_to_inventory(item_type: String) -> void:
inventory.append(item_type)
update_inventory_display()
if item_type == "health":
increase_health()
elif item_type == "speed":
increase_speed()
Player.gd för att hantera de olika föremålen, t.ex., en hälsodryck som ger hälsa eller en power-up som ökar hastigheten tillfälligt: func increase_health() -> void:
health = min(health + 20, max_health) # Öka hälsa
update_health_display()
func increase_speed() -> void:
speed *= 1.5 # Öka hastigheten tillfälligt
await get_tree().create_timer(5.0).timeout
speed /= 1.5 # Återställ hastigheten
Skapa en hälsobar:
UI-nod, lägg till en ProgressBar för att representera spelarens hälsa. Ställ in min- och maxvärden för att matcha spelarens hälsopoäng.Uppdatera hälsobaren i Player-skriptet:
ProgressBar: var health: int = 100
var max_health: int = 100
func update_health_display() -> void:
var health_bar = $UI/HealthBar
health_bar.value = health
increase_health-funktionen och uppdatera hälsan med update_health_display()._on_body_entered-funktionen i UsableItem.gd: func _on_body_entered(body: Node) -> void:
if body.name == "Player":
$Particles2D.emitting = true
collected.emit(item_type)
queue_free()
func increase_speed() -> void:
$Sprite2D.modulate = Color(1, 0.5, 0.5) # Ändrar färgen
speed *= 1.5
await get_tree().create_timer(5.0).timeout
speed /= 1.5
$Sprite2D.modulate = Color(1, 1, 1) # Återställ färgen
Spela igenom spelet:
Justera hastighet och hälsa:
Spara allt och dokumentera:
Efter denna lektion kommer ditt spel ha ett inventariesystem där spelaren kan samla, använda och se effekterna av olika föremål! Lektion 4?