ランダムな位置
CoddyのGodotジャーニー「ゲームのルール」セクションの一部。レッスン 20/29。
いつも同じ場所に落ちてくるブロックなら、簡単に避けられます。乱数を使うと、ラウンドごとに違いが生まれます。
randf_range(a, b)は、aからbまでの小数を含む乱数を返します。呼び出すたびに新しい数が返されます。
spawn(randf_range(40, 600))ブロックの幅は36ピクセルです。そのため、40から600の範囲なら、すべてのブロックが640ピクセルの画面内に完全に収まります。
ブロックが出現するたびに、タイマーの関数内で呼び出しましょう。一度選んで変数に保存した数は、ゲーム中ずっと同じままです。
チャレンジ
簡単各ブロックがランダムな場所に落ちるようにしましょう。
_on_spawn_timer_timeout()内で、320をrandf_range(40, 600)に置き換えます。- 関数の中に置いたままにして、各ブロックにそれぞれ独自のx座標を設定します。
「プレイ」を押すと、ブロックが画面全体に落ちます。その後、「確認」を押します。
自分で試してみよう
extends Node2D
var block_scene = preload("res://block.tscn")
func _ready():
$SpawnTimer.timeout.connect(_on_spawn_timer_timeout)
func _on_spawn_timer_timeout():
spawn(320)
func spawn(x):
var block = block_scene.instantiate()
block.position = Vector2(x, -30)
add_child(block)
ゲームのルールのすべてのレッスン
自分で練習してみよう: Godotプレイグラウンド