Menu
CoddyTech

ランダムな位置

CoddyのGodotジャーニー「ゲームのルール」セクションの一部。レッスン 20/29。

いつも同じ場所に落ちてくるブロックなら、簡単に避けられます。乱数を使うと、ラウンドごとに違いが生まれます。

randf_range(a, b)は、aからbまでの小数を含む乱数を返します。呼び出すたびに新しい数が返されます。

spawn(randf_range(40, 600))

ブロックの幅は36ピクセルです。そのため、40から600の範囲なら、すべてのブロックが640ピクセルの画面内に完全に収まります。

ブロックが出現するたびに、タイマーの関数内で呼び出しましょう。一度選んで変数に保存した数は、ゲーム中ずっと同じままです。

challenge icon

チャレンジ

簡単

各ブロックがランダムな場所に落ちるようにしましょう。

  1. _on_spawn_timer_timeout()内で、320をrandf_range(40, 600)に置き換えます。
  2. 関数の中に置いたままにして、各ブロックにそれぞれ独自の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プレイグラウンド