Menu
CoddyTech

随机车道

本课属于 Coddy Godot 学习旅程的“游戏规则”单元。第 21 课,共 29 课。

有些随机选择需要一个整数,例如从五条车道中选一条,或掷骰子。

randi_range(a, b)会返回从a到b(包括两者)的随机整数:

var roll = randi_range(1, 6)	# 1、2、3、4、5 或 6

屏幕宽 640 像素,所以五条车道的宽度各为 128 像素。将车道编号乘以 128,再加上 64,就能到达车道的中间:

var lane = randi_range(0, 4)
spawn(lane * 128 + 64)

这样得到的 x 值是 64、192、320、448 或 576,中间不会出现其他值。

challenge icon

挑战

简单

让方块在 5 条通道中下落。

  1. 在 _on_spawn_timer_timeout() 中,用 var lane = randi_range(0, 4) 选择一条通道。
  2. 在 lane * 128 + 64 处生成方块。

按“开始”:方块会整齐地成列下落。然后按“检查”。

亲手试试

extends Node2D

var block_scene = preload("res://block.tscn")

func _ready():
	$SpawnTimer.timeout.connect(_on_spawn_timer_timeout)

func _on_spawn_timer_timeout():
	spawn(randf_range(40, 600))

func spawn(x):
	var block = block_scene.instantiate()
	block.position = Vector2(x, -30)
	add_child(block)
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

游戏规则中的所有课

自己练习: Godot 在线编辑器