Thủ Thuật

[Lập trình game] Bài 11: Kẻ Thù Raycast2D trong Godot – Phần 2

Trong bài này mình sẽ hướng dẫn các bạn tạo raycast2D để kẻ thù có thể di chuyển trên địa hình như dưới ảnh mà không bị rớt xuống. Và cùng bắt đầu thôi

Kẻ Thù Raycast2D trong Godot

RAYCAST2D

lập trình Kẻ Thù Raycast2D

Ở đây Raycast 2D là 1 nút: Truy vấn đôi tượng giao nhau ở tia nghĩa là Raycast 2D là 1 tia và tia này dùng để truy vấn đối tượng khi giao nhau với tia

KẺ THÙ

Tiếp theo là kẻ thù các bạn vào sence của kẻ thù

Tìm cho mình raycast2D

Raycast2D

Và được như này

code Raycast2D

Ở đây các bạn không dùng chuột mà xài phím mũi tên phải di chuyển nó ra rìa collsionshape

Và gần hở ra như mình

[Lập trình game] Bài 11: Kẻ Thù Raycast2D trong Godot - Phần 2 8

Ở bên phần tính chất để ý cho mình EnableCast to

Enabled các bạn click chọn cho mình và raycast sẽ thành màu xanh

[Lập trình game] Bài 11: Kẻ Thù Raycast2D trong Godot - Phần 2 9

cast to phần y các bạn cast nó tới gần dưới kẻ thù

[Lập trình game] Bài 11: Kẻ Thù Raycast2D trong Godot - Phần 2 10

Như ảnh mà cái con kẻ thù này nó nhỏ quá nên mình sẽ chỉnh scale của raycast thành 0.5, 0.5

Và sau khi chỉnh scale xong các bạn cũng phải chỉnh lại phần khác nha

[Lập trình game] Bài 11: Kẻ Thù Raycast2D trong Godot - Phần 2 11

Tiếp theo chúng ta sẽ coding cho nó

Và Coding cho mình

Ở dưới if is_on_wall

Các bạn thêm cho mình là

if $Raycast2D.is_collding == false:

vitri = vitri * -1

Ở đây $Raycat2D là gọi raycast2d || is_collding là lệnh: Trả về cho dù bất kỳ đối tượng nào đang giao nhau với tia vectơ mà ở đây chúng ta gắn = false có nghĩa là nó sẽ không giao nhau với gì cả.

vitri = vitri * -1 ở đây có nghĩa là kẻ thù sẽ di chuyển ngược lại khi ở trên địa hình mà mình nói ở đầu bài

Và các bạn để ý khi nó đã di chuyển lại rồi mà cái raycast2D này nó lại không di chuyển ngược lại nữa vì vậy chúng ta cần phải chỉnh nó lại.

Các bạn thêm $RayCast2D.position.x *= -1 vào if is_on_wallraycast collding nhé

Đây là lệnh giúp Raycast 2D có thể đổi hướng và các bạn có thể áp dụng với những node khác như là collsionshape v.v

Vậy là xong

Và các bạn nhớ xóa *delta đi nhé

Nếu code mà ko chạy thì code như dưới nhé

Full code godot Raycast2D

Đánh giá post

Rất Hữu ích

RatHuuIch là Website chia sẻ miễn phí tất cả các kiến thức về công nghệ thông tin. RatHuuIch cung cấp mọi giải pháp về mạng máy tính, phần mềm, đồ họa và MMO.

Bài liên quan

Theo dõi
Thông báo của
guest

0 Góp ý
Phản hồi nội tuyến
Xem tất cả bình luận
Back to top button