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ị.
Thử thách
DễĐổi logo sang màu tiếp theo sau mỗi lần nảy.
- Viết
func next_color():. Câu lệnh này tăngcolor_indexthêm 1, đặt lại thành0khi nó bằngcolors.size(), rồi đặtmodulate = colors[color_index]. - Gọi
next_color()trong cả hai câu lệnhif, 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
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
1Trò chơi Godot đầu tiên
Godot là gì?Ready chỉ chạy một lầnIn ra trong GodotCây cảnhĐặt vị tríDi chuyển một nút một lần2Mỗi khung hình
Quy trình chạy mỗi khung hìnhDeltaSố pixel mỗi giâyDi chuyển chéoXoay với góc quayPhóng to với tỷ lệ5Dự án: Trình bảo vệ màn hình
Trình bảo vệ màn hình: TrôiTrình bảo vệ màn hình: Tường bên3Các giá trị bạn có thể điều chỉnh
Biến trên một nútHằng sốBiến xuấtPhép toán với Vector2Vòng qua mép màn hìnhHàm của riêng bạnTự luyện tập: Playground Godot