ブロックの壁
CoddyのGodotジャーニー「プロジェクト」セクションの一部。レッスン 5/36。
次はブロックです。5行×8個のブロックは、ゲーム開始時にmain.gdで生成されます。ブロックはbrick.tscnというシーンで、preloadしてからinstantiateします。
forループは各数値に対して1回ずつ実行されます。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]を設定します。ブロックはadd_child内で実行される_ready()で、自身に色を塗ります。
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)の位置に、8個ずつ5行のブロックを作ります。- 各ブロックを
add_childで追加する前に、brick.color = COLORS[row]を設定します。
「プレイ」を押すと、上部に色付きのブロックが5行並びます。その後、「確認」を押します。
自分で試してみよう
extends Node2D
func _ready():
pass
プロジェクトのすべてのレッスン
自分で練習してみよう: Godotプレイグラウンド