Share [Tạo 2D Platformer Game với Godot] Phần 9: Di chuyển giữa các level

goldenbear411

New member
ICS #1 Làm thế nào để di chuyển giữa các cấp độ trong Godot 1. Tạo cảnh mới
2. Cấp độ mới
3. Ví dụ khu vực chuyển động
4. Tóm tắt

## 1. Tạo cảnh mới

Đầu tiên, bạn tạo một cảnh mới với nguồn gốc là nút gốc.

! [Hình ảnh] ( )

Ở đây, tôi sử dụng Area2D vì tôi sẽ tạo một khu vực và khi người chơi đi vào nó sẽ chuyển sang cấp độ tiếp theo.

Sau đó, bạn đã lưu trong thư mục cảnh.

Tiếp theo, thêm tập lệnh vào nó.

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

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

func _on_khuvucdichuyen_body_enthered (cơ thể):
if body.name == "người chơi":
get_tree (). Change_scene (levelketiep)
`` `

Tôi tuyên bố một biến và biến này đặc biệt ở chỗ tôi sử dụng xuất khẩu (đây là sự xuất hiện nổi bên ngoài thanh tra để có thể dễ dàng chỉnh sửa)

Tôi đã thêm (chuỗi, tệp) phía sau nó để có thể chọn tệp từ bên ngoài Thanh tra.

Bạn có thể tham khảo tài liệu ở đây: [xuất khẩu GDScript] (GDScript exports)

Đối với chức năng bên dưới, bạn phải kết nối tín hiệu để xuất hiện.

Nếu body.name == "người chơi" là tôi đã kiểm tra xem cơ thể có đi vào không và tên là người chơi (tên của cảnh nhân vật mà tôi và bạn đã tạo), nó sẽ chuyển sang cấp độ được gán cho biến trên.

Bạn nhấp vào Khu vực2D

Thông qua tab Node, nhấp vào 2 Nhấp vào Body Enter (ở đây tôi sử dụng Body Enter được

Bảng xuất hiện, sau đó chọn Area2D và nhấp vào Kết nối.

Bạn có thể xác định tín hiệu kết nối thành công bằng cách xem hai ký hiệu trong hai bức ảnh trên.

## 2. Cấp độ mới

Sau khi kết thúc, bạn tạo một cấp độ mới tương tự như cách bạn tạo cảnh bản đồ.

Sau khi tạo một nút 2D mới, hãy thay đổi tên của bạn thành MAP2.

Và thay vì làm lại TILEMAP, bạn có thể đi qua bản đồ đầu tiên để sao chép nó.

Thông qua bản đồ 2 và dán nó ra.

Sau khi dán, chúng tôi nhận được tilemap giống như bản đồ đầu tiên và bạn chỉ cần điều chỉnh

Bản đồ 2 của tôi sau khi điều chỉnh.

Thêm người chơi và nền như bản đồ 1, chỉ cần sao chép được thực hiện.

## 3. Ví dụ khu vực chuyển động

Bạn thể hiện vùng vùng vùng nút vừa được tạo trong MAP1

Phải -Buồn qua trẻ em có thể chỉnh sửa để có thể chỉnh sửa nó.

Chọn CollisionShape2D và chọn hình dạng cho nó.

Sau khi chọn hình dạng, nó sẽ xuất hiện như thế này.

Và bạn kéo nó đến nơi chúng ta cần thay đổi cấp độ bằng cách nhấp vào Khuvucdichuyen và nhấp vào biểu tượng di chuyển trên thanh công cụ, không phải kéo CollisionShape2D.

Tôi chuyển đến vị trí tôi muốn và tôi đã chỉnh sửa CollisionShape2D thành một cách hợp lý.

Bạn sẽ không thể di chuyển vì bạn không nói với nó để biết bạn muốn di chuyển cảnh nào, vì vậy nó nằm trong Luvucdichchuyen nhấp vào MUC.

Tìm và chọn MAP2 sau đó nhấp vào Mở.

Sau khi kết thúc, MAP2 đã được thêm vào biến cấp độ

Trên đây khi tôi nhập sẽ được chuyển sang MAP2.

Ở đây, bạn có thể áp dụng nhiều cách để có thể tận dụng nó như:

* Bộ camera giới hạn ở phía trước khu vực di chuyển
* Thêm sprite trong cảnh Khuvucdichuyen để dễ dàng nhận dạng.

## Bản tóm tắt

Trong phần này, tôi đã hướng dẫn bạn cách di chuyển giữa các cấp độ và tùy thuộc vào sự sáng tạo và hiểu biết của bạn, bạn có thể thiết kế nhiều hơn.
=======================================
ics #1 How to move between levels in Godot 1. Create new scenes
2. New level
3. Instance the movement area
4. Summary

## 1. Create new scenes

First, you create a new scene with the origin is the original node.

![image](https://i.imgur.com/737196f.png)

Here, I use Area2D because I will create an area and when the player comes into it will move to the next level.

After that, you saved in the scene folder.

Next, add the script to it.

```
extends Area2D

# Export (String, File) Var Levelketiep

func _on_khuvucdichuyen_body_entered(Body):
if Body.Name == "Player":
get_tree().Change_scene(Levelketiep)
```

I declare a variable and this variable is especially in that I use Export (this is the floating appearance outside the Inspector to be able to easily edit)

I added (string, file) behind it to be able to select the file from outside the Inspector.

You can refer to the document here: [GDSCRIPT Exports](https://docs.godotengine.org/en/stable/tutorials/scripting/gdscript/gdscript_exports.html)

As for the function below, you have to connect signal to appear.

If body.name == "Player" is that I checked if the body goes in and the name is the player (the name of the character scene that I and you have created), it will move to the level assigned to the above variable.

You click on Area2D

Through the node tab, click 2 Click on Body Enter (here I use Body Entered because Player is a kinematicbody2d so I will use the definite signal when a body goes to Area2D)

The table appears, then select Area2D and click Connect.

You can identify the successful Connect signal by viewing the two symbols in the two photos above.

## 2. New level

After finishing, you create a new level similar to how you create a map scene.

After creating a new 2D node, change your name to MAP2.

And instead of redoing tilemap you can go through the first map to copy it.

Through map 2 and paste it out.

After pasting, we get tilemap like the first map and you just need to adjust

My map 2 after adjusting.

Add Player and background like map 1, just copy is done.

## 3. Instance the movement area

You Instance Node Zone Zone Zone has just created in Map1

Right -click Editable Children to be able to edit it.

Select Collisionshape2D and select Shape for it.

After choosing Shape, it will appear like this.

And you pull it to where we need to change the level by clicking the Khuvucdichuyen and clicking the Icon Move on the toolbar, not to pull the Collisionshape2D.

I moved to the position I wanted and I edited the CollisionShape2D to reasonably.

You will not be able to move because you haven't told it to know which scene you want to move, so it is in the luvucdichchuyen click on the muc.

Find and select MAP2 then click Open.

After finishing, the map2 has been added to the levelketiep variable

Above when I enter will be transferred to map2.

Here, you can apply many ways to be able to take advantage of it as:

* Set of limit camera in front of the moving area
* Add Sprite in Scene Khuvucdichuyen for easy identification.

## Summary

In this section, I have instructed you how to move between levels and depending on your creativity and understanding, you can design more.
 
Join Telegram ToolsKiemTrieuDoGroup
Back
Top