砖块墙
本课属于 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)]挑战
中等搭建一堵由 40 块砖组成的墙。
- 在
main.gd中,添加const BRICK = preload("res://brick.tscn")和上面的COLORS行。 - 在
_ready中,用Vector2(68 + column * 72, 60 + row * 26)的位置搭建 5 行、每行 8 块砖。 - 用
add_child添加每块砖之前,设置brick.color = COLORS[row]。
按“开始”:砖块会在顶部排成五行彩色的墙。然后点击“检查”。
亲手试试
extends Node2D
func _ready():
pass
项目中的所有课
自己练习: Godot 在线编辑器