ngovybirthday
New member
Trong bài viết này, tôi sẽ chỉ cho bạn cách thu thập tiền như các nền tảng trong Godot.
## Nghệ thuật
Tải xuống
Như thường lệ, tôi sẽ cung cấp nghệ thuật.Bạn có thể tải xuống tại liên kết này: Coin xoay
## Cài đặt
Bạn tạo một thư mục mới có tên Vatpham tại thư mục tài sản và sau đó sao chép các đồng tiền điền.png trong tệp zip tải xuống ở trên.
## Đồng xu
Thêm cảnh
Bạn tạo một cảnh mới và Area2D là nút gốc -> Đổi tên Thanh Dongxu sau đó bạn thêm 2 nút làm ảnh.
Ở đây, tôi sử dụng Area2D vì tôi muốn chơi khi người chơi chạm vào, đồng xu xác định và biến mất, không sử dụng các nút khác để làm bất cứ điều gì.
Sau đó, bạn thêm hình ảnh động mới và kéo hình ảnh theo thứ tự 1-> 8 (và xóa số 5).
Bật chơi trong AnimatedSprite để nó luôn chạy hoạt hình.
Sau đó thêm CollisionShape2D vào nó.
Sau đó lưu cảnh và thêm tập lệnh cho nó.
Sau khi điều chỉnh quy mô như một bức tranh vì nó khá lớn.
## Kịch bản
Bạn kết nối tín hiệu được xác định bởi vì tôi muốn kiểm tra xem người chơi có vào không, đồng xu biến mất và số lượng tiền trong người chơi tăng lên.
`` `
Mở rộng khu vực2D
func _on_dongxu_body_entered (cơ thể):
if body.name == "người chơi":
Body.dongxu += 1
hàng đợi_free ()
Vượt qua # thay thế bằng cơ thể chức năng
`` `
Do đó, tôi sẽ có một mã như thế này trong tập lệnh xu.
## Người chơi
Kịch bản
Var dongxu = 0
Và trong tập lệnh của người chơi, tôi chỉ cần thêm một dòng nữa là var dongxu = 0.
`` `
func _process (delta):
$ Gui/dongxu.text = str ("dong xu:" + dongxu)
`` `
Sau đó, tôi đã thêm một hàm nữa vào _Process () Tôi đã sử dụng nó để chạy các sự cố phi vật lý, chức năng này sẽ xử lý nhanh hơn quá trình vật lý.
`$ Gui/dongxu.text = str (dongxu)` là tôi sẽ gán văn bản của nút dongxu = với giá trị của biến Dongxu.
Lưu ý: Khi gán một giá trị nhất định cho văn bản của một nút nhất định, bạn luôn phải đặt str () nếu không nó sẽ bị lỗi vì nếu bạn gọi .text, chỉ có chuỗi được chấp nhận.
## Bối cảnh
Tiếp theo, tôi phải thêm một cái được gọi là để hiển thị số lượng tiền bên ngoài màn hình cho người chơi biết.
Thêm chính mình 1 Canvaslayer -> GUI
Một nút nhãn -> Dongxu
Trong nhãn nút có một bảng được gọi là bảng văn bản và bạn có thể vào đó
Sau đó, tôi đã đi đến góc để có thể hợp lý.
## Bản đồ
Sau đó, tôi sẽ đi ra bản đồ đến ví dụ.
Đây là kết quả cuối cùng của tôi.
Và khi bạn nhặt đồng xu, nó sẽ hiển thị trên nhãn.
## Bản tóm tắt
Đó là nó, tôi sẽ bổ nhiệm bạn vào bài viết tiếp theo.
=======================================
In this article, I will show you how to collect coins like platformers in Godot.
## Art
Download
As usual, I will provide the art. You can download it at this link: Rotating Coin
## Setting
You create a new folder named Vatpham at the Assets Folder and then copy the Fill Coins.Png in the Zip file download above.
## Coins
Add Scene
You create a new scene and Area2D is the original node -> Rename Thanh Dongxu then you add 2 nodes as photos.
Here, I use Area2d because I want to play when the player touches, the coin identifies and disappears, not using other nodes to do anything.
Then you add the new animation and drag the image in order 1-> 8 (and remove the number 5).
Turn on the Playing in AnimatedSprite so that it always runs animation.
Then add collisionshape2d to it.
Then Save Scene and add the script for it.
After adjusting the scale like a picture because it is quite big.
## Script
You connect the signal is body_entered because I want to check if the player comes in, the coin disappears and the number of coins in the Player increases.
```
extends Area2d
func _on_dongxu_body_entered(Body):
if Body.name == "Player":
Body.dongxu += 1
queue_free()
Pass # Replace with Function Body
```
Therefore, I will have a code like this in the coin script.
## Player
Script
Var dongxu = 0
And in Player's script, I just need to add one more line that is Var Dongxu = 0.
```
func _process(delta):
$Gui/dongxu.text = str("dong xu:" + dongxu)
```
After that, I added one more function to _Process() I used it to run non-physical problems, this function will handle faster than Physics process.
`$Gui/dongxu.text = str(dongxu)` is that I will assign the text of node dongxu = with the value of the dongxu variable.
Note: When assigning a certain value to the text of a certain node, you always have to put in str() otherwise it will be faulty because if you call .Text, only String is accepted.
## Scene
Next, I have to add one more so-called to display the number of coins outside the screen for the player to know.
Add yourself 1 canvaslayer -> GUI
A label node -> dongxu
In Node Label there is a so-called text table and you can enter there
After that, I went to the corner to be reasonable.
## Map
Then I will go out to the map to instance.
This is my final result.
And when you pick up the coin, it will display on Label.
## Summary
That's it, I will appoint you in the next article.
## Nghệ thuật
Tải xuống
Như thường lệ, tôi sẽ cung cấp nghệ thuật.Bạn có thể tải xuống tại liên kết này: Coin xoay
## Cài đặt
Bạn tạo một thư mục mới có tên Vatpham tại thư mục tài sản và sau đó sao chép các đồng tiền điền.png trong tệp zip tải xuống ở trên.
## Đồng xu
Thêm cảnh
Bạn tạo một cảnh mới và Area2D là nút gốc -> Đổi tên Thanh Dongxu sau đó bạn thêm 2 nút làm ảnh.
Ở đây, tôi sử dụng Area2D vì tôi muốn chơi khi người chơi chạm vào, đồng xu xác định và biến mất, không sử dụng các nút khác để làm bất cứ điều gì.
Sau đó, bạn thêm hình ảnh động mới và kéo hình ảnh theo thứ tự 1-> 8 (và xóa số 5).
Bật chơi trong AnimatedSprite để nó luôn chạy hoạt hình.
Sau đó thêm CollisionShape2D vào nó.
Sau đó lưu cảnh và thêm tập lệnh cho nó.
Sau khi điều chỉnh quy mô như một bức tranh vì nó khá lớn.
## Kịch bản
Bạn kết nối tín hiệu được xác định bởi vì tôi muốn kiểm tra xem người chơi có vào không, đồng xu biến mất và số lượng tiền trong người chơi tăng lên.
`` `
Mở rộng khu vực2D
func _on_dongxu_body_entered (cơ thể):
if body.name == "người chơi":
Body.dongxu += 1
hàng đợi_free ()
Vượt qua # thay thế bằng cơ thể chức năng
`` `
Do đó, tôi sẽ có một mã như thế này trong tập lệnh xu.
## Người chơi
Kịch bản
Var dongxu = 0
Và trong tập lệnh của người chơi, tôi chỉ cần thêm một dòng nữa là var dongxu = 0.
`` `
func _process (delta):
$ Gui/dongxu.text = str ("dong xu:" + dongxu)
`` `
Sau đó, tôi đã thêm một hàm nữa vào _Process () Tôi đã sử dụng nó để chạy các sự cố phi vật lý, chức năng này sẽ xử lý nhanh hơn quá trình vật lý.
`$ Gui/dongxu.text = str (dongxu)` là tôi sẽ gán văn bản của nút dongxu = với giá trị của biến Dongxu.
Lưu ý: Khi gán một giá trị nhất định cho văn bản của một nút nhất định, bạn luôn phải đặt str () nếu không nó sẽ bị lỗi vì nếu bạn gọi .text, chỉ có chuỗi được chấp nhận.
## Bối cảnh
Tiếp theo, tôi phải thêm một cái được gọi là để hiển thị số lượng tiền bên ngoài màn hình cho người chơi biết.
Thêm chính mình 1 Canvaslayer -> GUI
Một nút nhãn -> Dongxu
Trong nhãn nút có một bảng được gọi là bảng văn bản và bạn có thể vào đó
Sau đó, tôi đã đi đến góc để có thể hợp lý.
## Bản đồ
Sau đó, tôi sẽ đi ra bản đồ đến ví dụ.
Đây là kết quả cuối cùng của tôi.
Và khi bạn nhặt đồng xu, nó sẽ hiển thị trên nhãn.
## Bản tóm tắt
Đó là nó, tôi sẽ bổ nhiệm bạn vào bài viết tiếp theo.
=======================================
In this article, I will show you how to collect coins like platformers in Godot.
## Art
Download
As usual, I will provide the art. You can download it at this link: Rotating Coin
## Setting
You create a new folder named Vatpham at the Assets Folder and then copy the Fill Coins.Png in the Zip file download above.
## Coins
Add Scene
You create a new scene and Area2D is the original node -> Rename Thanh Dongxu then you add 2 nodes as photos.
Here, I use Area2d because I want to play when the player touches, the coin identifies and disappears, not using other nodes to do anything.
Then you add the new animation and drag the image in order 1-> 8 (and remove the number 5).
Turn on the Playing in AnimatedSprite so that it always runs animation.
Then add collisionshape2d to it.
Then Save Scene and add the script for it.
After adjusting the scale like a picture because it is quite big.
## Script
You connect the signal is body_entered because I want to check if the player comes in, the coin disappears and the number of coins in the Player increases.
```
extends Area2d
func _on_dongxu_body_entered(Body):
if Body.name == "Player":
Body.dongxu += 1
queue_free()
Pass # Replace with Function Body
```
Therefore, I will have a code like this in the coin script.
## Player
Script
Var dongxu = 0
And in Player's script, I just need to add one more line that is Var Dongxu = 0.
```
func _process(delta):
$Gui/dongxu.text = str("dong xu:" + dongxu)
```
After that, I added one more function to _Process() I used it to run non-physical problems, this function will handle faster than Physics process.
`$Gui/dongxu.text = str(dongxu)` is that I will assign the text of node dongxu = with the value of the dongxu variable.
Note: When assigning a certain value to the text of a certain node, you always have to put in str() otherwise it will be faulty because if you call .Text, only String is accepted.
## Scene
Next, I have to add one more so-called to display the number of coins outside the screen for the player to know.
Add yourself 1 canvaslayer -> GUI
A label node -> dongxu
In Node Label there is a so-called text table and you can enter there
After that, I went to the corner to be reasonable.
## Map
Then I will go out to the map to instance.
This is my final result.
And when you pick up the coin, it will display on Label.
## Summary
That's it, I will appoint you in the next article.