• Kiến thức
  • Network
  • Security
  • Software
  • Thủ thuật
  • Tin học văn phòng
  • Tin tức
  • Mail ảo tạm thời miễn phí
  • Tools tra cứu thông tin
  • Công cụ đổi số thành chữ
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

[Godot RPG] #3: Tấn Công & Object

DeathGM by DeathGM
20/08/2020 - Updated on 24/07/2025
in Godot
A A
0

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

  1. Tấn Công
    1. Hitbox & HurtBox
    2. Nhấn rồi đánh
    3. Instance & Animation Player
  2. Object
    1. Tạo Sence mới
  3. Câu hỏi thường gặp
    1. Làm thế nào để tạo Hitbox và Hurtbox trong Godot?
    2. Cách thiết lập Layer và Mask để Hitbox và Hurtbox tương tác chính xác?
    3. Tôi có thể thêm hiệu ứng phá hủy vật thể như thế nào?

Chào mừng các bạn đến với bài 3 trong series lập trình game RPG với Godot :3

📢 Tham gia kênh Telegram của AnonyViet
👉 Vào Telegram AnonyViet
Cập nhật bài mới, tools hay và thủ thuật IT nhanh nhất

Okay , thì trong bài này mình sẽ hướng dẫn các bạn tấn công với animation player & Hitbox & Hurtbox và Object với Godot

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

godot lap trinh game

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

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

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

09/12/2021 - Updated on 24/07/2025
[Tạo 2D Platformer Game với Godot] Phần 28: Thêm âm thanh giao diện 67

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

08/12/2021 - Updated on 24/07/2025
[Tạo 2D Platformer Game với Godot] Phần 27: Mở khoá level 68

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

07/12/2021 - Updated on 24/07/2025

Và chúng ta cùng bắt đầu thôi

Tấn Công

Chúng ta sẽ tạo 1 cái Sence mới để làm Hitbox để kiểm tra khi chúng ta tấn công và hurtbox để kiểm tra khi cái hitbox nó va chạm thì mất máu.

Hitbox & HurtBox

Tạo cái Hitbox và nút gốc là Area2D rồi sau đó thêm cái CollisionShape2D là được.

[Godot RPG] #3: Tấn Công & Object 35

Rồi tạo script mới

[Godot RPG] #3: Tấn Công & Object 36

Ở đây mình sẽ dùng biến export để xuất ra ngoài Inspector cho dễ điều chỉnh cho từng nhân vật. bạn có thể chỉnh ngôn ngữ ở ngoài giao diện của Godot sang tiếng việt cho dễ

[Godot RPG] #3: Tấn Công & Object 37

Rồi lưu lại là xong.

Rồi tạo cái Sence mới là HurtBox sau đó lưu lại như Hitbox thôi và không cần tạo script vì chúng ta sẽ kết nối tín hiệu đến player

[Godot RPG] #3: Tấn Công & Object 38

Nhấn rồi đánh

Chúng ta phải check nếu như nhấn vào thì tấn công chứ. Bạn có thể Edit cái Input nếu lười thì sử dụng như ảnh :vv. Godot có nhiều lựa chọn mà!

Xem thêm:  [Tạo 2D Platformer Game với Godot] Phần 10: Tấn công của Player

[Godot RPG] #3: Tấn Công & Object 39

Rồi sau đó trạng thái sẽ bằng ATTACK.

Ở ATTACK: chúng ta sẽ tạo 1 hàm mới là trangthai_attack sẽ có code chạy animtion attack

[Godot RPG] #3: Tấn Công & Object 40

Rồi tiếp theo các bạn gọi nó trên chỗ ATTACK: nhé.

Sau đó khi tấn công chúng ta phải set speed = 0 để khi tấn công nó sẽ không di chuyển

[Godot RPG] #3: Tấn Công & Object 41

Sau khi tấn công xong nó sẽ đứng yên vì nó chưa về trạng thái IDLE vậy nên chúng ta phải set nó về.

Mình sẽ tạo 1 hàm mới

[Godot RPG] #3: Tấn Công & Object 42

Sau đó ở AnimationPlayer > Animation AtTACk > thêm track method(đây là track sẽ chạy hàm Godot có cái này tiện vl :3)

[Godot RPG] #3: Tấn Công & Object 43

Sau đó chọn Player vì Player mới có code mà chạy:D

[Godot RPG] #3: Tấn Công & Object 44

Rồi chọn hàm

[Godot RPG] #3: Tấn Công & Object 45

Rồi chỉnh lại cho về cuối vì khi kết thúc animation = chạy hàm

[Godot RPG] #3: Tấn Công & Object 46

Và vậy là các bạn sẽ di chuyển bình thường lại

Instance & Animation Player

Tiếp theo chúng ta sẽ Instance nó trong Godot. Instance mình cũng chả biết gọi tiếng việt là gì nữa@@.

Sau đó nhấn add 2 cái Hitbox & Hurtbox sau đó nhấn chuột phải vô 2 cái nhấn Editable as children để chúng ta có thể điều chỉnh nó như 1 nút con và để set collishape luôn.

[Godot RPG] #3: Tấn Công & Object 47

À trước đó, chúng ta phải set mask/layer đã. Vô Project > Project Setting > 2D Render / 2D Physics

các bạn set như mình nhé. Set cho cả 2 cái 2D Render và 2D Physics

[Godot RPG] #3: Tấn Công & Object 48

Rồi ở cái Hitbox của player ở bên bảng thuộc tính > collision  thì mình sẽ bỏ tick trong cái Layer và ở cái Mask sẽ tick nó va chạm với Hurtbox_E tức là khi player tấn công nó sẽ va chạm với hurtbox của kẻ thù.

[Godot RPG] #3: Tấn Công & Object 49

[Godot RPG] #3: Tấn Công & Object 50

Rồi ở HurtBox Layer các bạn tick ở ô Hurtbox_P ở phần mask bỏ trống

[Godot RPG] #3: Tấn Công & Object 51

Tiếp đến là chỉnh cái CollisionShape2D của HurtBox sao cho vừa với nhân vật .

Xem thêm:  [Godot RPG] #2: Nhân vật

[Godot RPG] #3: Tấn Công & Object 52

Rồi tiếp đến sẽ set collisionshape2D của Hitbox với AnimationPlayer.

Ở Collisionshape2D của Hitbox thì nhấn vô cái khoá để add track nhanh

[Godot RPG] #3: Tấn Công & Object 53

[Godot RPG] #3: Tấn Công & Object 54

Sau đó bạn sẽ canh vị trí khi nào nó tấn công để tắt / bật.

Vì nó chưa tấn công nên mình sẽ để Disabled = trueở giây thứ 0 rồi check tiếp mấy giây tiếp theo nếu đến hành động tấn công thì set disable =false rồi sau  khi rút kiếm về thì disabled = true

[Godot RPG] #3: Tấn Công & Object 55

[Godot RPG] #3: Tấn Công & Object 56

Rồi sau đó chạy lại sẽ thấy nó ổn và perfect :33. Mình thích cái này trong Godot cực

Object

Tiếp theo chúng ta sẽ tạo object với Godot.

Link tải: https://elthen.itch.io/pixel-art-destructible-objects

Tạo Sence mới

Ở đây thì tạo:

Area2D > Sprite – CollisionShape2D – AnimationPlayer

[Godot RPG] #3: Tấn Công & Object 57

Ở sprite thì bỏ ảnh vô nhé và mình thấy hơi to các bạn set scale sao cho phù hợp nhé.

Vframes = 12

Hframes = 7

 

[Godot RPG] #3: Tấn Công & Object 58

Mờ thì reimport lại nha.

[Godot RPG] #3: Tấn Công & Object 59

Rồi tiếp theo ở AnimationPlayer tạo 2 animation là Hit và Destroy nhé. Hit là animation khi đánh vào và Destroy là animation khi bị phá huỷ.

Ở đây mình sẽ là cái Thùng  bạn muốn đổi thì cũng được.

Hit : 7-9

Destory:10-13

Ở animation destroy mình sẽ áp dụng cái call method tương tự ở trên nha.

destroy() chứa câu lệnh queue_free()

[Godot RPG] #3: Tấn Công & Object 60

Rồi sau đó tạo script mới. ở đây chúng ta không cần Hitbox hay Hurtbox vì cái thùng này nó đã là 1 nút area2d rồi.

chúng ta sẽ set collisionshape2D cho nó rồi kết nối tín hiệu. nhưng lưu ý nếu làm theo Nút area2D như mình sẽ có bất lợi khi player va chạm với nó. Nếu bạn dùng StaticBody để làm nó rồi thêm Hurtbox vào thì sẽ hoàn chỉnh tốt hơn.

Kết nối tín hiệu Area enterd nhé.

[Godot RPG] #3: Tấn Công & Object 61

mình sẽ tạo biến hp = 10 để có căn mà căn khi player tấn công.

Rồi ở chỗ hàm tín hiệu thì mình sẽ kiểm tra nếu cái tên area  = “Hitbox” thì hp sẽ bằng cái damage của area trừ đi hp. Cái print là mình dùng để kiểm tra hp xem có đánh vào chưa thôi Godot.

Xem thêm:  [Tạo 2D Platformer Game với Godot] Phần 9: Di chuyển giữa các level

[Godot RPG] #3: Tấn Công & Object 62

Rồi set cái Layer lại thành Hurtbox_E và bỏ chọn Mask là được.

[Godot RPG] #3: Tấn Công & Object 63

 

Tiếp đó chúng ta cần kiểm tra nếu player tấn công thì sẽ chậynimation hit và khi hết máu chạy animation destroy

Ở đây mình sẽ hàm _process(): để kiểm tra mỗi giây nếu hp <= 0 thì sẽ chạy animation rồi tự huỷ

[Godot RPG] #3: Tấn Công & Object 64

Rồi Tiếp đến để chắc ăn các bạn ở ANimation hit thì nhấn cái khoanh dưới ảnh đểkhi bắt đầu nó chạy animation hit chứko phải destroy nhé

[Godot RPG] #3: Tấn Công & Object 65

Lưu Ý: Object thì lúc đầu mình tạo ngu nên thông cảm :V. Khi chạy game Ọbject sẽ không va chạm được với player nếu muốn bạn phải chỉnh lại thành StaticBody2D hoặc KinematicBody2D rồi add hurtbox > kết nối tín hiệu rồi áp dụng code như trên là được.

Hẹn gặp bạn vào bài sau của Series lập trình game RPG với Godot

Câu hỏi thường gặp

Làm thế nào để tạo Hitbox và Hurtbox trong Godot?

Tạo hai Scene mới: Hitbox và Hurtbox. Mỗi Scene sử dụng Area2D làm node gốc và thêm CollisionShape2D để định hình vùng va chạm. Hitbox cần script để xử lý logic va chạm, trong khi Hurtbox không cần script, chỉ cần kết nối tín hiệu với Player.

Cách thiết lập Layer và Mask để Hitbox và Hurtbox tương tác chính xác?

Trong Project Settings > 2D Physics và 2D Render, đặt Layer và Mask cho Hitbox và Hurtbox sao cho chúng tương tác đúng. Ví dụ, Hitbox của player có Mask là Hurtbox_E (Enemy Hurtbox), và Hurtbox của enemy có Layer là Hurtbox_E.

Tôi có thể thêm hiệu ứng phá hủy vật thể như thế nào?

Tạo một Scene mới với Area2D, Sprite, CollisionShape2D và AnimationPlayer. Nhập ảnh động phá hủy vào Sprite và tạo hai animation: “Hit” và “Destroy” trong AnimationPlayer. Sử dụng tín hiệu va chạm để kích hoạt animation “Hit” và “Destroy” tương ứng.

Tags: GodotGODOT ENGINE
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 25/07/2025
[Tạo 2D Platformer Game với Godot] Phần 29: Lưu và load dữ liệu game 69
Godot

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

09/12/2021 - Updated on 24/07/2025
[Tạo 2D Platformer Game với Godot] Phần 28: Thêm âm thanh giao diện 70
Godot

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

08/12/2021 - Updated on 24/07/2025
[Tạo 2D Platformer Game với Godot] Phần 27: Mở khoá level 71
Godot

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

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

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

30/11/2021 - Updated on 24/07/2025
[Tạo 2D Platformer Game với Godot] Phần 25: Tạo Menu khi hết Level 73
Godot

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

29/11/2021 - Updated on 24/07/2025
guest

guest

This site uses Akismet to reduce spam. Learn how your comment data is processed.

0 Comments
oldest
newest
Inline Feedbacks
View all comments

Liên hệ Quảng Cáo

Lien he AnonyViet

Bài viết mới

cách tắt tiếng khi cắm sạc AirPods

Cách tắt tiếng khi cắm sạc AirPods để không làm phiền người khác

by Thanh Kim
15/03/2026
0

cách nhận gói Booster trị giá 100$ trên Rocket

Nhận gói 100$ trên Rocket để Vide Coding – Tạo Website bằng AI

by Thanh Kim
14/03/2026
0

Đánh giá MacBook Air M2: 2026 giá chạm đáy, còn gì nữa? 15

Đánh giá MacBook Air M2: 2026 giá chạm đáy, còn gì nữa?

by Lan Ngọc
14/03/2026
0

cách nhận 1 lít xăng miễn phí qua Momo

Cách nhận 1 lít xăng miễn phí qua Momo tại cây xăng PVOil

by Thanh Kim
13/03/2026
0

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: support[@]anonyviet.com

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

 

DMCA.com Protection Status

Bình luận gần đây

  • 45555 trong Sự trỗi dậy của “Người ngoài hành tinh”: Alienware Aurora AC16250 “Vũ khí” tối thượng định hình Gaming năm 2026
  • 45555 trong Cách làm mờ ảnh trên iPhone sau khi chụp cực đơn giản
  • vatuan13 trong Hướng dẫn cài OpenClaw – AI Trợ lý cá nhân trên máy tính
  • vatuan13 trong Hướng dẫn thiết lập định vị giả trên Zalo
  • AnonyViet trong Hướng Dẫn Cấu Hình OpenClaw Trên VPS Ubuntu 2.5G RAM (giá chỉ 18$/năm)
  • hùng lê trong Hướng Dẫn Cấu Hình OpenClaw Trên VPS Ubuntu 2.5G RAM (giá chỉ 18$/năm)
  • Kelvin trong Hướng dẫn thi chứng chỉ bảo mật CTIGA miễn phí 100%
  • Minh trong Hướng dẫn kết nối OpenClaw với Whatsapp
  • AnonyViet trong Hướng Dẫn Cấu Hình OpenClaw Trên VPS Ubuntu 2.5G RAM (giá chỉ 18$/năm)
  • congdk trong Hướng Dẫn Cấu Hình OpenClaw Trên VPS Ubuntu 2.5G RAM (giá chỉ 18$/năm)
  • AnonyViet trong Hướng dẫn cài OpenClaw – AI Trợ lý cá nhân trên máy tính
  • AnonyViet trong Hướng dẫn cài OpenClaw – AI Trợ lý cá nhân trên máy tính
  • Tran Minh trong Hướng dẫn cài OpenClaw – AI Trợ lý cá nhân trên máy tính
  • AnonyViet trong Chia sẻ key SwifDoo PDF Pro miễn phí bản quyền lên đến 1 năm
  • Kerya Kuznetsov trong Chia sẻ key SwifDoo PDF Pro miễn phí bản quyền lên đến 1 năm
  • AnonyViet trong Chia sẻ key SwifDoo PDF Pro miễn phí bản quyền lên đến 1 năm
  • 1234560987 trong Chia sẻ key SwifDoo PDF Pro miễn phí bản quyền lên đến 1 năm
  • Lim trong Tổng hợp các Website tạo VISA ảo (virtual card) để mua hàng Online
  • Linh trong Cách dùng bot tự động verify để đăng ký ChatGPT K12, Spotify Student,…
  • Thịnh trong Tải và kích hoạt Office 2021 Free với tool OfficeSavior
kết quả xổ số hôm nay U888 33win Ae888 kubet kubet 8kbet 99ok trang chủ sc88 xin88 good88 kubet fm88 kubet thailand vip66 xoso66 https://tp88fun.com/ hello88 qq88 Xoso66 Vip66 hitclub bong99 XOSO66 new882.info Thabet fun88 nhà cái uy tín sunwin sunwin rikvip hitclub sunwin go88 12bet v9bet betvisa betvisa vin777 vin777 ee88 bet88 abc8 c54 https://keonhacai.fund/ sunwin cakhiatv socolive Xoso66 zx88 58win fun88.supply EE88 FB88 https://da88.design/ https://fun88.supply/ F8BET80 https://q23win.com/ 32win https://lc88.jpn.com/ u888 8xbet W88 link 58win 58WIN https://bbet88b.com/ OK9 SHBET https://xx88.center/ vswin 789PCOM NHÀ CÁI MMOO TT88COM GO 99 RR88 ABC8 https://nowgoal.ws/ https://tylekeonhacai.me/ https://keonhacai.org.vc/ https://xx88.ac/ xx88.me.uk XN88 NOHU90 68WIN GO99 AF88 HM88 HZ88 https://xx88.asia/ 789f NOHU HITCLUB Sunwin 58WIN MV88 888NEW AZ888 PG99 TD88 12bet v9bet X88 NOHU90 Thabet vip66 7mcn hm88 xoso66 DA88 9BET https://daga.rocks https://c168.info/ LC88 Game WIN678 sv368 SH BET https://jun88sr.com/ GVUI TR88 NOHU90 TG88 Taptap 188bet taptap 188BET Link https://qq88pro.vip/ https://kjcgaming.com https://nohutm.com 6789 789Win https://tiendanutrisalud.com/ https://go8.red/ 23win clubv 7m https://urr88.com/ Mig8 mcw casino hit club game bai tg88 kèo nhà cái 5 9 win Sunwin UU88 nổ hũ uy tín Go88 https://bancadoithuong.codes/ https://danhdeonline.blog/ Xocdia88 https://nhacaiuytin10.uk.com/ https://keonhacai88.tv/ https://keonhacai.loans/ https://gamebaidoithuong.io/ https://keonhacai.kiwi/ 789club sodo casino ok 8386 xx88 V9BET Sun52 https://918xxy.com/ Luckywin https://sc88.info/ https://go99bet.live/ https://tt88.ae.org/ kjc https://socolive.stream/ F168 Nhà cái 789BET keo nha cai 5 SC88 https://lc88.bio/ F168 8us https://www.open8808.com/ c168 fly88 hytw3339 ok9 https://go99.mx/ f168 79king Sunwin nhà cái MB66 Luck8 Alo789 hello88 f168 mb66 MV88 sc88 11uu vn23 8DAY ko66 789win 88CLB kèo nhà cái TẢI SUNWIN Thabet tg88 c168 CM88 nạp tiền qq88 8kbet Lode88 game bài game nổ hũ tỷ lệ nhà cái sun win gavangtv colatv truc tiep bong da trực tiếp bóng rổ thapcamtv iwin SH BET https://www.78wind.love/ SODO luck8 tr88 cm88 https://kjcgaming.com/ https://devmarks.io cwin Kkwin https://abc8.za.com V9bet 888slot Keonhacai5 ALO8.com F168 rikvip VIN777 b52club Rik88 8kbet KUBET TT88 789club 789club AX88 xoso66 https://sc88.info/ HZ88

©2026 AnonyViet - Chúng tôi mang đến cho bạn những kiến thức bổ ích về CNTT

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

©2026 AnonyViet - Chúng tôi mang đến cho bạn những kiến thức bổ ích về CNTT

wpDiscuz