Breaking

Sabtu, 27 November 2021

[Tạo 2D Platformer Game với Godot] Phần 23: Chọn Level

Trong phần này mình sẽ hướng dẫn các ban tạo cái nút để chọn level kiểu như là trong Map level có mấy cái ô level 1,2,3 rồi sau đó chọn để chơi.

Chọn Level

Scene[Tạo 2D Platformer Game với Godot] Phần 23: Chọn Level

Bạn tạo cho mình 1 scene mới có Control là node gốc và 1 TextureButton và 3 Texturect.

TextureButton là  mình dùng để tạo hình ành cho cái level và tiện thể check nếu được bấm vào.

3 cái Texture Rect là dùng để hiển thị ngôi sao.

[Tạo 2D Platformer Game với Godot] Phần 23: Chọn Level 70

[Tạo 2D Platformer Game với Godot] Phần 23: Chọn Level 71

Bạn copy cái hình tròn ở bên thư mục UI trong Level map vào TextureButton
[Tạo 2D Platformer Game với Godot] Phần 23: Chọn Level 72 [Tạo 2D Platformer Game với Godot] Phần 23: Chọn Level 73

Rồi cái Texture Rect thì 3 cái kéo ngôi sao vào.

[Tạo 2D Platformer Game với Godot] Phần 23: Chọn Level 74

Sau đó chỉnh ngôi sao theo thứ tự từ trái qua.

[Tạo 2D Platformer Game với Godot] Phần 23: Chọn Level 75

Sau đó mình rename lại.

[Tạo 2D Platformer Game với Godot] Phần 23: Chọn Level 76

Add thêm 1 cái Label tên là SoLevel để hiển thị Level.

[Tạo 2D Platformer Game với Godot] Phần 23: Chọn Level 77 [Tạo 2D Platformer Game với Godot] Phần 23: Chọn Level 78

Mình dùng Customs Font ở phần trước.

[Tạo 2D Platformer Game với Godot] Phần 23: Chọn Level 79

Sau đó save scenes lại.

[Tạo 2D Platformer Game với Godot] Phần 23: Chọn Level 80

Rồi add thêm cho nó cái Script.

[Tạo 2D Platformer Game với Godot] Phần 23: Chọn Level 81 [Tạo 2D Platformer Game với Godot] Phần 23: Chọn Level 82

Sau đó connect cái signal pressed của HinhTron.

Script

extends Control

export (String) var MapName
export (String,FILE) var Scene
export (String) var Level
onready var ngoisaovang = preload("res://Assets/LevelMap/3 UI/Star1.png")
var SoDiem = 0

func _ready():
$SoLevel.text = Level
func _process(delta):
if SoDiem >= 1 and SoDiem <= 30:
$NgoiSao1.texture = ngoisaovang
elif SoDiem >= 30 and SoDiem <= 95:
$NgoiSao1.texture = ngoisaovang
$NgoiSao2.texture = ngoisaovang
elif SoDiem >= 95:
$NgoiSao1.texture = ngoisaovang
$NgoiSao2.texture = ngoisaovang
$NgoiSao3.texture = ngoisaovang


func _on_HinhTron_pressed():
get_tree().change_scene(Scene)
pass # Replace with function body.

Về phần code mình sẽ có như trên.

[Tạo 2D Platformer Game với Godot] Phần 23: Chọn Level 83

Ở đây mình sẽ dùng export để xuất 3 biến ra Inspector

Và Sodiem ở đây mình sẽ để theo thang đo 100. SoDiem ở đây sẽ được quy ra từ số sao mà bạn thu thập được khi chơi 1 level nếu đủ tất cả sao thì SoDiem là 100 và $NgoiSao1,2,3 sẽ chuyển sang màu vàng.

dòng có onready var là mình dùng để load trước hình ảnh của ngôi sao vàng tức là vừa chạy game thì nó load luôn còn nếu ban dùng load() là khi nào đụng tới thì nó mới load hình ảnh

[Tạo 2D Platformer Game với Godot] Phần 23: Chọn Level 84

Sau đó Instance cái Level vừa tạo vào LevelMap.

[Tạo 2D Platformer Game với Godot] Phần 23: Chọn Level 85 [Tạo 2D Platformer Game với Godot] Phần 23: Chọn Level 86

Bạn điền thông tin vào.

MapName là tên của node gốc của cái Scene ở bên dưới.

Scene là bạn chọn scene của level đó.

Level là dùng để hiển thị level.

[Tạo 2D Platformer Game với Godot] Phần 23: Chọn Level 87

MapName bằng tên node gốc nha.

[Tạo 2D Platformer Game với Godot] Phần 23: Chọn Level 88

Và sau khi chạy game mình sẽ có kết quả nó được như trên.

Sau khi nhấn vào đó mình sẽ được đi chuyển tới Level 1.

Tổng kết

Ở trong phần sau mình sẽ hướng dẫn bạn cách để tạo menu dừng và khi chiến thăng 1 level.

Adblock test (Why?)


Xem Them Chi Tiet

Nhung Mon Do Cong Nghe Duoc Yeu Thich

Do Cong Nghe Phu Kien
Xem Them Chi Tiet

Phu nu phai dep dan ong moi yeu! Sam ngay bo vay dam sieu dep

Thanh xuan nhu mot tach trá Khong mua do hot phi hoai thanh xuan

Tidak ada komentar:

Posting Komentar

close