Menu
CoddyTech

砖块墙

本课属于 Coddy Godot 学习旅程的“项目”单元。第 5 课,共 36 课。

接下来是砖块:5 行,每行 8 块,由游戏启动时的 main.gd 创建。砖块是一个场景 brick.tscn,你可以先用 preload 加载,再用 instantiate 实例化。

for 循环会针对每个数字运行一次。for row in 5: 会让 row 依次取值 0 到 4。一个循环嵌套在另一个循环中,就能遍历每一行的每一列:

for row in 5:
	for column in 8:
		var brick = BRICK.instantiate()
		brick.position = Vector2(68 + column * 72, 60 + row * 26)
		add_child(brick)

每列之间相隔 72 像素,每行之间相隔 26 像素。这样,64 × 20 像素的砖块之间就会留出一条小缝隙。

每一行的颜色都取自一个列表。添加砖块前,先设置 brick.color = COLORS[row]:砖块会在 _ready() 中绘制自身,而这个方法会在 add_child 中运行。

const COLORS = [Color(1, 0.42, 0.42), Color(1, 0.78, 0.34), Color(0.49, 0.95, 0.75), Color(0.369, 0.635, 1), Color(0.75, 0.82, 0.95)]
challenge icon

挑战

中等

搭建一堵由 40 块砖组成的墙。

  1. 在 main.gd 中,添加 const BRICK = preload("res://brick.tscn") 和上面的 COLORS 行。
  2. 在 _ready 中,用 Vector2(68 + column * 72, 60 + row * 26) 的位置搭建 5 行、每行 8 块砖。
  3. 用 add_child 添加每块砖之前,设置 brick.color = COLORS[row]。

按“开始”:砖块会在顶部排成五行彩色的墙。然后点击“检查”。

亲手试试

extends Node2D

func _ready():
	pass

项目中的所有课

自己练习: Godot 在线编辑器