[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
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
Và được như này
Ở đâ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
Ở bên phần tính chất để ý cho mình Enable và Cast to
ở Enabled các bạn click chọn cho mình và raycast sẽ thành màu xanh
Ở cast to phần y các bạn cast nó tới gần dưới kẻ thù
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
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ả.
Và 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_wall và raycast 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é