Menu
CoddyTech

只有玩家

本课属于 Coddy Godot 学习旅程的“信号与碰撞”单元。第 4 课,共 27 课。

一个区域会注意到每个进入的物体。通常只有一个物体应该被计入,例如一扇只会为英雄打开的门。

使用 if 检查进入的是谁:

func _on_body_entered(body):
	if body.name == "Player":
		print("Hello, player")

== 用来检查两个值是否相等。缩进一层、位于 if 下方的代码行,只有在两个值相等时才会运行。名称必须完全匹配。小写 p 的 "player" 是另一个名称。

这里,漫游车先驶过压力板,然后你再走到压力板上。

challenge icon

挑战

简单

让这个踏板只对玩家做出反应。

  1. 在 _on_body_entered(body) 中,把 modulate 这一行放进一个 if 语句中。
  2. 让 if 检查 body.name 是否为 "Player",使用 ==。

按下“开始”:漫游车经过时,踏板保持原来的颜色;你踩上去时,踏板会变成薄荷绿。然后按“检查”。

亲手试试

extends Area2D

func _ready():
	body_entered.connect(_on_body_entered)

func _on_body_entered(body):
	modulate = Color(0.49, 0.95, 0.75)

信号与碰撞中的所有课

自己练习: Godot 在线编辑器