• Tin tức
  • Network
    • Mạng cơ bản
    • Hyper-V
    • Linux
    • Windown Server 2012
  • Security
    • Basic Hacking
    • Deface
    • Kali Linux / Parrot
    • SQL Injection
  • Thủ thuật
    • Khóa Học Miễn Phí
    • Code
    • Mẹo Vặt Máy Tính
    • Facebook
    • Windows 7/8/10/11
    • Đồ Họa
    • Video
  • Software
    • Phần mềm máy tính
    • Phần mềm điện thoại
  • Tin học văn phòng
  • Kiến thức
  • MMO
    • Advertisers – Publishers
    • Affiliate Program
    • Kiếm tiền bằng điện thoại
    • Pay Per Click – PPC
AnonyViet
  • Tin tức
  • Network
    • Mạng cơ bản
    • Hyper-V
    • Linux
    • Windown Server 2012
  • Security
    • Basic Hacking
    • Deface
    • Kali Linux / Parrot
    • SQL Injection
  • Thủ thuật
    • Khóa Học Miễn Phí
    • Code
    • Mẹo Vặt Máy Tính
    • Facebook
    • Windows 7/8/10/11
    • Đồ Họa
    • Video
  • Software
    • Phần mềm máy tính
    • Phần mềm điện thoại
  • Tin học văn phòng
  • Kiến thức
  • MMO
    • Advertisers – Publishers
    • Affiliate Program
    • Kiếm tiền bằng điện thoại
    • Pay Per Click – PPC
No Result
View All Result
  • Tin tức
  • Network
    • Mạng cơ bản
    • Hyper-V
    • Linux
    • Windown Server 2012
  • Security
    • Basic Hacking
    • Deface
    • Kali Linux / Parrot
    • SQL Injection
  • Thủ thuật
    • Khóa Học Miễn Phí
    • Code
    • Mẹo Vặt Máy Tính
    • Facebook
    • Windows 7/8/10/11
    • Đồ Họa
    • Video
  • Software
    • Phần mềm máy tính
    • Phần mềm điện thoại
  • Tin học văn phòng
  • Kiến thức
  • MMO
    • Advertisers – Publishers
    • Affiliate Program
    • Kiếm tiền bằng điện thoại
    • Pay Per Click – PPC
No Result
View All Result
AnonyViet
No Result
View All Result

[Tạo 2D Platformer Game với Godot] Phần 11: Tấn công của kẻ thù

DeathGM by DeathGM
15/11/2021 - Updated on 16/11/2021
in Godot
Reading Time: 4 mins read
A A
0

Mục lục bài viết

  1. Thiết lập tấn công
    1. Add node
  2. Tổng Kết

Trong phần này mình sẽ chỉ bạn cách để thiết lập việc tấn công trên kẻ thù và ở phần tiếp mình sẽ hướng dẫn bạn các gây sát thương / tiêu diệt kẻ thù, player.

Thiết lập tấn công

[Tạo 2D Platformer Game với Godot] Phần 10: Tấn công của kẻ thù

Các bài viết liên quan

Có nên dùng Unity để lập trình game không? 31

Có nên dùng Unity để lập trình game không?

07/04/2022
godot lap trinh game

Có nên học Godot Engine để lập trình Game không?

15/03/2022 - Updated on 17/03/2022
hoc lap trinh game de khong

Học lập trình Game dễ không? Tiềm năng của ngành lập trình game?

09/03/2022
Có nên dùng Game Maker Studio để làm Game trong năm không? 32

Có nên dùng Game Maker Studio để làm Game trong năm không?

03/03/2022

Ở phần phần trước thì mình đã hướng dẫn các bạn thiết lập kẻ thù và trong đó có đoạn code trên là dùng để xác định khi gặp wall và nó sẽ quay đầu lại.

Nhưng mà đây khi mà nó gặp Player thì nó cũng quay đầu lại do đó chúng ta phải xác định được rằng khi va chạm vào wall và nó không phải là Player thì nó sẽ xoay lại.

Và ngược lại nếu như va chạm vào tường mà nó là Player thì mình sẽ làm cho con kẻ thù tấn công.

Add node

[Tạo 2D Platformer Game với Godot] Phần 11: Tấn công của kẻ thù 25

Bạn add thêm cho mình 1 node raycast để tên là XacDinhPlayer ( node raycast này mình dùng để xác định nếu Player đang đứng trước con kẻ thù thì nó sẽ tấn công).

[Tạo 2D Platformer Game với Godot] Phần 11: Tấn công của kẻ thù 26

Xong rồi bạn chỉnh sang ngang và cái mũi tên của raycast không được va chạm với CollisionShape2D.

Bạn bật nó lên và chỉnh lại cái Cast To.

var dangtancong = false
func _physics_process(delta):
    if dangtancong == false:
        chuyendong.x = tocdo * huong_dichuyen
        chuyendong.y += trongluc
        chuyendong = move_and_slide(chuyendong,Vector2.UP)
        animation.play("dichuyen")
        
        if $RayCast2D.is_colliding() == false:
            huong_dichuyen = huong_dichuyen * -1
            scale.x = scale.y * huong_dichuyen
        
        if is_on_wall() and $XacDinhPlayer.is_colliding() == false:
            huong_dichuyen = huong_dichuyen * -1
            scale.x = scale.y * huong_dichuyen
    
    var coll = $XacDinhPlayer.get_collider()
    if coll != null and coll.name == "Player" and dangtancong == false:
        dangtancong = true
        animation.play("tancong")

Mình sẽ có đoạn code tương tự với như tấn công của Player.

Mình bỏ phần di chuyển trong if dangtancong == false: là để nếu như không trong trạng thái tấn công thì di chuyển và ngược lại.

Dòng if is_on_wall() and $XacDinhPlayer.is_colliding() == false: thì mình thêm $XacDinhPlayer.is_colliding() == false là để xác định rằng khi gặp wall nếu như đó là Player thì nó không xoay lại và ngược lại.

Dòng var coll = $XacDinhPlayer.get_collider() là mình sẽ tạo 1 biến và gán nó là $XacDinhPlayer.get_collider() là hàm get_collider() cho phép mình xác định được RayCast đang va chạm với node nào nên mình sẽ gán node đang va chạm vào biến coll.

Dòng if coll != null and coll.name == "Player" and dangtancong == false: là mình kiểm tra nếu như coll đã được gán bằng 1 node và tên là “Player” và không trong trạng thái tấn công thì nó sẽ thực hiên tấn công.

 

func _on_AnimatedSprite_animation_finished():
    if animation.animation == "tancong":
        dangtancong = false

[Tạo 2D Platformer Game với Godot] Phần 11: Tấn công của kẻ thù 27 [Tạo 2D Platformer Game với Godot] Phần 11: Tấn công của kẻ thù 28 [Tạo 2D Platformer Game với Godot] Phần 11: Tấn công của kẻ thù 29

Tưởng tự như bên Player thì mình cần phải thêm 1 hàm để xác định khi kết thúc animation thì dangtancong = false bằng cách kết nối tín hiệu.

[Tạo 2D Platformer Game với Godot] Phần 11: Tấn công của kẻ thù 30

Và đây là kết quả cuối cùng.

Tổng Kết

Vậy là mình đã hướng dẫn xong cho bạn cách thực hiện rồi, nếu có thắc mắc vui lòng Join Group Cộng Đồng Godot VN hoặc Anonyviet Community để được giải đáp,

 

 

 

 

 

Tags: Godotlập trình gamethiết kế game
Previous Post

Cách xóa tài khoản Google vĩnh viễn

Next Post

[Tạo 2D Platformer Game với Godot] Phần 12: Tiêu diệt kẻ thù

DeathGM

DeathGM

Related Posts

godot lap trinh game
Godot

Có nên học Godot Engine để lập trình Game không?

15/03/2022 - Updated on 17/03/2022
[Tạo 2D Platformer Game với Godot] Phần 29: Lưu và load dữ liệu game 33
Godot

[Tạo 2D Platformer Game với Godot] Phần 29: Lưu và load dữ liệu game

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

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

08/12/2021
[Tạo 2D Platformer Game với Godot] Phần 27: Mở khoá level 35
Godot

[Tạo 2D Platformer Game với Godot] Phần 27: Mở khoá level

07/12/2021
[Tạo 2D Platformer Game với Godot] Phần 26: Thêm điểm số khi hết game 36
Godot

[Tạo 2D Platformer Game với Godot] Phần 26: Thêm điểm số khi hết game

30/11/2021
[Tạo 2D Platformer Game với Godot] Phần 25: Tạo Menu khi hết Level 37
Godot

[Tạo 2D Platformer Game với Godot] Phần 25: Tạo Menu khi hết Level

29/11/2021
Next Post
[Tạo 2D Platformer Game với Godot] Phần 12: Tiêu diệt kẻ thù 38

[Tạo 2D Platformer Game với Godot] Phần 12: Tiêu diệt kẻ thù

guest
guest

Website này sử dụng Akismet để hạn chế spam. Tìm hiểu bình luận của bạn được duyệt như thế nào.

0 Comments
Inline Feedbacks
View all comments

Liên hệ Quảng Cáo

Lien he AnonyViet

Đối tác —

Fshare

Các bài mới

CTF là gì? Muốn làm Hacker có nên chơi CTF? 39

CTF là gì? Muốn làm Hacker có nên chơi CTF?

21/05/2022
khoa hoc Hacker mu trang - Masters In Ethical Hacking

Tải khóa học Hacker mũ trắng – Masters In Ethical Hacking

20/05/2022
Cách ẩn nhà của bạn khỏi Google Maps 40

Cách ẩn nhà của bạn khỏi Google Maps

19/05/2022
tao tai khoan vcb bang sdt

Cách Tạo tài khoản Vietcombank theo Số điện thoại miễn phí

18/05/2022
Mip22 - tạo trang Phishing cho Linux và Android

Mip22 – Công cụ tạo trang Phishing cho Linux và Android

18/05/2022

Ads

Giới thiệu

AnonyViet

AnonyViet

Nơi chia sẻ những kiến thức mà bạn chưa từng được học trên ghế nhà trường!

Chúng tôi sẵn sàng đón những ý kiến đóng góp, cũng như bài viết của các bạn gửi đến AnonyViet.

Hãy cùng AnonyViet xây dựng một cộng đồng CNTT lớn mạnh nhất!

Giới thiệu

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

Liên hệ

Email: anonyviet.com[@]gmail.com

1409 Hill Street #01-01A
Old Hill Street Police Station
Singapore 179369

 

Bản quyền: DMCA.com Protection Status

Bài viết mới

  • CTF là gì? Muốn làm Hacker có nên chơi CTF?
  • Cách giao dịch Ngoại Hối
  • Tải khóa học Hacker mũ trắng – Masters In Ethical Hacking
  • Cách ẩn nhà của bạn khỏi Google Maps
  • Cách Tạo tài khoản Vietcombank theo Số điện thoại miễn phí
  • Mip22 – Công cụ tạo trang Phishing cho Linux và Android

©2022 AnonyViet - Chúng tôi mang đến cho bạn những kiến thức bổ ích về Công nghệ. Google iwin888 Bing tải game iwin Github tải iwin apk Github tải win456 Youtube ku fun wikipedia 88vin reddit twin 567LIVE MMLive 92lottery sun86 stackoverflow

No Result
View All Result
  • Tin tức
  • Network
    • Mạng cơ bản
    • Hyper-V
    • Linux
    • Windown Server 2012
  • Security
    • Basic Hacking
    • Deface
    • Kali Linux / Parrot
    • SQL Injection
  • Thủ thuật
    • Khóa Học Miễn Phí
    • Code
    • Mẹo Vặt Máy Tính
    • Facebook
    • Windows 7/8/10/11
    • Đồ Họa
    • Video
  • Software
    • Phần mềm máy tính
    • Phần mềm điện thoại
  • Tin học văn phòng
  • Kiến thức
  • MMO
    • Advertisers – Publishers
    • Affiliate Program
    • Kiếm tiền bằng điện thoại
    • Pay Per Click – PPC

©2022 AnonyViet - Chúng tôi mang đến cho bạn những kiến thức bổ ích về Công nghệ. Google iwin888 Bing tải game iwin Github tải iwin apk Github tải win456 Youtube ku fun wikipedia 88vin reddit twin 567LIVE MMLive 92lottery sun86 stackoverflow

wpDiscuz
pixel