Menu
CoddyTech

Trình bảo vệ màn hình: Màu mới

Thuộc phần Nút và cảnh trong hành trình Godot của Coddy. Bài học 28 trên 28.

Bước cuối cùng giúp logo chuyển sang màu tiếp theo sau mỗi lần nảy. Cả bốn cạnh đều làm cùng một việc, vì vậy hãy đưa thao tác đó vào một hàm (function), next_color(), rồi gọi hàm này sau mỗi lần nảy.

Hàm tăng color_index thêm 1, rồi hiển thị colors[color_index]. Với ba màu, chỉ số lần lượt là 1, 2 rồi 3, nhưng không có màu nào ở chỉ số 3. Vì vậy, khi chỉ số bằng colors.size(), tức là số lượng phần tử, hãy đặt lại chỉ số thành 0:

if color_index == colors.size():
	color_index = 0

== kiểm tra xem hai giá trị có bằng nhau không. Một dấu = dùng để gán giá trị.

challenge icon

Thử thách

Dễ

Đổi logo sang màu tiếp theo sau mỗi lần nảy.

  1. Viết func next_color():. Câu lệnh này tăng color_index thêm 1, đặt lại thành 0 khi nó bằng colors.size(), rồi đặt modulate = colors[color_index].
  2. Gọi next_color() trong cả hai câu lệnh if, ngay dưới câu lệnh đổi hướng.

Nhấn Chơi: sau mỗi lần nảy, logo hiển thị màu tiếp theo trong danh sách. Sau đó nhấn Kiểm tra.

Tự làm thử

extends Node2D

var velocity = Vector2(200, 90)
var colors = [Color(0.49, 0.95, 0.75), Color(1, 0.78, 0.34), Color(1, 0.42, 0.42)]
var color_index = 0

func _ready():
	modulate = colors[0]

func _process(delta):
	position += velocity * delta
	if position.x > 570 or position.x < 70:
		velocity.x = -velocity.x
	if position.y > 330 or position.y < 30:
		velocity.y = -velocity.y
quiz iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

Tất cả bài học trong Nút và cảnh

Tự luyện tập: Playground Godot