[Tạo 2D Platformer Game với Godot] Phần 4: Thiết kế nhân vật

Ở phần trước mình đã hướng dẫn các bạn thêm animation cho nhân vật và bài đó nó khá là dài.

Trong phần này mình sẽ hướng dẫn bạn cách thiết kế nhân vật, chúng ta sẽ thêm collision rồi sau đó code cho nó di chuyển rồi jump các kiểu nha.

CollisionShape

Đầu tiên, các bạn phải thêm cho mình CollisionShape2D

Các bạn nhấn vào CollisionShape2D bên bảng Inspector ở dòng Shape chọn [empty] -> chọn cái phù hợp vói nhân vật, ở trong trường hợp này là cái đầu tiên.

Sau khi chọn xong các bạn căn chỉnh lại cho đều.

Rồi các bạn nhấn Ctrl + S để save lại. Các bạn tạo cho mình thêm 1 thư mục mới tên là Scenes để lưu trữ các scene bằng cách chuột phải chọn new folder.

Như trên.

 

Sau đó tiến hành thêm Script vào cho nhấn vật.

Các bạn chọn đường dẫn lưu ở thư mục Scenes sau đó nhấn Create.

Và đây là giao diện Script của Godot.

Mình sẽ khai báo 4 biến là:

var tocdo = 200
var trongluc = 7000
var chuyendong = Vector2()
var huong_dichuyen

Và 4 biến có công dụng như tên của nó.

Tiếp đó mình sẽ code cho nó thêm như sau:

func _physics_process(delta):
    chuyendong.y = trongluc * delta
    huong_dichuyen = Input.get_axis("ui_left","ui_right")
    
    if huong_dichuyen != 0:
        chuyendong.x = lerp(chuyendong.x,huong_dichuyen * tocdo,0.5)
    else:
        chuyendong.x = lerp(chuyendong.x,0,0.1)
    
    chuyendong.normalized()
    move_and_slide(chuyendong,Vector2.UP)

Ở đây mình sẽ giải thích đoạn code này cho các bạn hiểu.

Mình sử dụng hàm _physical_process vì đây là hàm chuyên sử dụng các vấn đề liên quan tới vật lý.

Biến chuyendong mình đã khai báo nó là Vector2() mà Vector2() là 1 thư viện và nó hoạt động theo trục ox và oy.

Dòng chuyendong.y += trongluc * delta thì:

Dòng huong_dichuyen = Input.get_axis(“ui_left”,”ui_right”) :

Dòng if huong_dichuyen != 0: :

Dòng else: :

Hai dòng cuối:

Sau đó các bạn ra ngoài và thêm cho mình 1 biến Camera2D.

Và ở Camera2D -> Inspector thì bật current lên thì camera mới hoạt động.

Tiếp đó bạn sẽ tiến hành Instance scene player vào Map bằng các nhấn vào nút trên hình

Chọn Player.tscn sau đó nhấn Open.

Vậy là Player đã được Instance vào Scene Map

Sau đó nhấn F6 và nhấn nút mũi tên trái, phải để di chuyển và khi chạy game của mình nó sẽ như này.

Nếu bạn thấy camera chưa ổn thì có thể chỉnh ở phần Zoom nhé.

Tổng Kết

Vậy là đã xong phần 4 rồi, trong phần này mình đã hướng dẫn các bạn các làm cho nhân vật di chuyển và ở bài sau chúng ta sẽ làm cho nó nhảy lên và áp dụng animation vô nhé

 

 

Đánh giá post
Exit mobile version