[Tạo 2D Platformer Game với Godot] Phần 28: Thêm âm thanh giao diện

Trong phần này mình sẽ hướng dẫn bạn cách thêm âm thanh khi nhấn vào các nút trên giao diện,vv.

Âm thanh

 Lấy âm thanh

Để lấy âm thanh thì ở đây mình sẽ không cần đưa bạn link tải, bạn chỉ cần vô Asset lib tìm Kenney là nó sẽ ra.

[Tạo 2D Platformer Game với Godot] Phần 28: Thêm âm thanh giao diện

Bạn có thể chọn 1 trong 2 cái đều được.[Tạo 2D Platformer Game với Godot] Phần 28: Thêm âm thanh giao diện 13

Rồi nhấn download để tải nó xuống.

[Tạo 2D Platformer Game với Godot] Phần 28: Thêm âm thanh giao diện 14

Tải xong rồi thì bạn nhấn vào Install để cài đặt.

[Tạo 2D Platformer Game với Godot] Phần 28: Thêm âm thanh giao diện 15

Nó sẽ hiện lên 1 giao diện hiển thị địa chỉ của addon đó rồi nhấn Install

[Tạo 2D Platformer Game với Godot] Phần 28: Thêm âm thanh giao diện 16

Sau đó 1 thư mục mới đc tạo tên addons và nó chứa âm thành mà mình vừa cài ở trong đó

[Tạo 2D Platformer Game với Godot] Phần 28: Thêm âm thanh giao diện 17

Về các file âm thanh nó cũng được ghi thêm tên đằng trước để bạn có thể nhận biết nên xài cái nào và cái nào.

Thêm vào scene

Sau khi cài đặt thành công thì mình tiến hành thêm nó vào game.

[Tạo 2D Platformer Game với Godot] Phần 28: Thêm âm thanh giao diện 18

Kiếm cho mình node AudioStreamPlayer2D[Tạo 2D Platformer Game với Godot] Phần 28: Thêm âm thanh giao diện 19

 

Ở đây mình đang add vào scene Menu.

[Tạo 2D Platformer Game với Godot] Phần 28: Thêm âm thanh giao diện 20[Tạo 2D Platformer Game với Godot] Phần 28: Thêm âm thanh giao diện 21[Tạo 2D Platformer Game với Godot] Phần 28: Thêm âm thanh giao diện 22

Ở đây mình đang làm Audio khi nhấn vào nút Bắt đầu cho nên mình sẽ tìm sound có tên click và kéo nó vào dòng Stream của Audio Stream Player 2D.

Sau khi kéo xong thì bạn có thể gọi nó ở trong code với hàm play()

extends Control
func _on_NutBatDau_pressed():
    $AudioStreamPlayer2D.play()
    yield(get_tree().create_timer(0,1),"timeout")
    get_tree().change_scene("res://Scences/Map/LevelMap.tscn")
    pass # Replace with function body.
func _on_NutThoatGame_pressed():
    get_tree().quit()
    pass # Replace with function body.

Dòng code ở trên mình thêm dòng $AudioStreamPlayer2D.play() là mình sẽ chạy cái âm thanh khi bấm nút bắt đầu

yield(get_tree().create_timer(0,1),"timeout"): là mình tạo 1 cái timer với thời gin 0,1s sau khi hết 0,1s nó mới chạy lệnh change_scene(). Ở đây, mình dùng lệnh này là bởi vì khi mình nhấn chỉ thêm dòng play() rồi change_scene nó sẽ không chạy âm thanh ( tuỳ máy có máy không) nên là mình sẽ thêm lệnh yield để sau khi nó chạy âm thanh rồi mới change scene.

Bạn có thể không cần thêm yield() nếu như cái bạn muốn chạy âm thanh không cần phải change scene.

[Tạo 2D Platformer Game với Godot] Phần 28: Thêm âm thanh giao diện 23

Mình sẽ làm thêm 1 cái nữa ở scene PauseMenu.[Tạo 2D Platformer Game với Godot] Phần 28: Thêm âm thanh giao diện 24

Bạn thêm âm thanh vào.

Sau đó ở hàm hiện âm thanh menu mình có:

func _on_HienPauseMenu_pressed():
    
    get_node("AudioStreamPlayer2D").play()
    $PauseMenu.show()
    get_tree().paused = true
    pass # Replace with function body.

Rồi sau khi bạn nhấn và chạy thử sẽ thấy nó có âm thanh click khi nhấn vào.

Tổng Kết

Vậy trong phần này mình đã hướng dẫn bạn cách để thêm âm thanh vào trong game.

 

Previous Post Next Post