Share [Tạo 2D Platformer Game với Godot] Phần 27: Mở khoá level

bigswan251

New member
ACH Mở khóa cấp độ ## Mở khóa cấp độ trong trò chơi Godot

Trong hướng dẫn này, tôi sẽ chỉ cho bạn cách mở khóa cấp độ tiếp theo trong trò chơi Godot sau khi hoàn thành cấp độ trước.

### Thuật toán

1. Thêm một biến vào `playerdata` để lưu trữ dữ liệu bản đồ được mở khóa.
2. Trong khu vực `khuvucdichuyen`, sau khi người chơi đã vào khu vực, hãy đặt bản đồ đang phát trong biến` unlocked_map` thành `true '.
3

### playerdata

`` `
Mở rộng nút

var diemso = {
"MAP1": 0,
"MAP2": 0,
"MAP3": 0,
}

var đã mở khóa_map = {
"MAP1": Sai,
"MAP2": sai,
"MAP3": Sai,
}
`` `

Tôi đã thêm một từ điển để lưu trữ dữ liệu bản đồ được mở khóa.

### Khuvucdichuyen

`` `
Mở rộng khu vực2D

xuất (chuỗi, tệp) var levelketiep

onReady var endlevelmenu = get_parent (). get_node ("endlevelmenu")

func _on_khuvucdichuyen_body_enthered (cơ thể):
if body.name == "người chơi":
Endlevelmenu.get_node ("endlevelmenu"). Show ()
get_tree (). pause = true
Playerdata.unlocked_map [get_parent (). Name] = true
`` `

Tôi đã thêm một dòng nữa để đặt bản đồ đang phát trong biến `Unlocked_map` thành` true '.

### Cảnh cấp độ

`` `
func _on_hinhtron_preded ():
var level_truocdo = int (cấp) - 1
Nếu MapName! = "Map1":
Nếu playerdata.unlocked_map ["map"+str (level_truocdo)] == true:
get_tree (). Change_scene (cảnh)
khác:
get_tree (). Change_scene (cảnh)
`` `

Tôi đã thêm một biến để lưu trữ cấp độ của cấp trước và tôi đã thêm `int ()` vào biến cấp vì biến cấp được khai báo là một chuỗi.

### Kết quả

Bây giờ, nếu bạn chạy trò chơi và nhấp vào cấp 2, nó sẽ không chuyển sang cảnh cấp 2 vì bạn chưa hoàn thành cấp 1.

### Bản tóm tắt

Trong hướng dẫn này, tôi đã chỉ cho bạn cách thêm tính năng mở khóa cấp độ vào trò chơi Godot của bạn.Trong hướng dẫn tiếp theo, tôi sẽ chỉ cho bạn cách thêm âm thanh vào trò chơi của bạn.
=======================================
ach Unlock Level ## Unlock Level in Godot Game

In this tutorial, I will show you how to unlock the next level in Godot Game after completing the previous level.

### Algorithm

1. Add a variable to `Playerdata` to store the data of which map is unlocked.
2. In the `Khuvucdichuyen` area, after the player has entered the area, set the map that is playing in the `unlocked_map` variable to `True`.
3. In the `Level Scene`, check if the clicked level is the next level and if the previous level is unlocked, then switch to playing that level.

### Playerdata

```
extends Node

var diemso = {
"Map1": 0,
"Map2": 0,
"Map3": 0,
}

var unlocked_map = {
"Map1": False,
"Map2": False,
"Map3": False,
}
```

I added a dictionary to store the data of which map is unlocked.

### Khuvucdichuyen

```
extends Area2d

export (String, File) var Levelketiep

onready var Endlevelmenu = get_parent().get_node("Endlevelmenu")

func _on_khuvucdichuyen_body_entered(Body):
if Body.name == "Player":
Endlevelmenu.get_node("endlevelmenu").show()
get_tree().pause = true
Playerdata.unlocked_map[get_parent().name] = True
```

I added one more line to set the map that is playing in the `unlocked_map` variable to `True`.

### Level Scene

```
func _on_hinhtron_preded():
var level_truocdo = int(level) - 1
if mapname != "map1":
if Playerdata.unlocked_map["map"+str(level_truocdo)] == True:
get_tree().change_scene(scene)
else:
get_tree().change_scene(scene)
```

I added a variable to store the level of the previous level and I added `int()` to the level variable because the level variable is declared as a string.

### Result

Now, if you run the game and click on the level 2, it will not switch to the level 2 scene because you have not completed the level 1.

### Summary

In this tutorial, I have shown you how to add the Level unlock feature to your Godot Game. In the next tutorial, I will show you how to add sound to your game.
 
Join Telegram ToolsKiemTrieuDoGroup
Back
Top