Menu
CoddyTech

ブロックの壁

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)]
challenge icon

チャレンジ

中級

40個のブロックの壁を作りましょう。

  1. main.gdに、const BRICK = preload("res://brick.tscn")と上記のCOLORSの行を追加します。
  2. _readyで、Vector2(68 + column * 72, 60 + row * 26)の位置に、8個ずつ5行のブロックを作ります。
  3. 各ブロックをadd_childで追加する前に、brick.color = COLORS[row]を設定します。

「プレイ」を押すと、上部に色付きのブロックが5行並びます。その後、「確認」を押します。

自分で試してみよう

extends Node2D

func _ready():
	pass

プロジェクトのすべてのレッスン

自分で練習してみよう: Godotプレイグラウンド