• 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

[Godot Shooter] #2: Tạo Nhân Vật & Bắn Đạn

Kỳ Lục by Kỳ Lục
10/08/2020
in Godot
Reading Time: 5 mins read
A A
0

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

  1. TẠO NHÂN VẬT
    1. AnimatedSprite
    2. Code:
  2. BẮN ĐẠN

Trong bài này mình sẽ hướng dẫn các bạn tạo nhân vật cho Shooter game với Godot nhé.

TẠO NHÂN VẬT

Trước hết các bạn tải art về nha.

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 17/03/2022
[Tạo 2D Platformer Game với Godot] Phần 29: Lưu và load dữ liệu game 94

[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 95

[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 96

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

07/12/2021

Link: https://opengameart.org/content/animated-top-down-survivor-player

AnimatedSprite

Đầu tiên các bạn xoá cái Sprite đi rồi thêm cho mình lại node AnimatedSprite.[Godot Shooter] #2: Tạo Nhân Vật & Bắn Đạn 73

Rồi Tạo Frame mới

[Godot Shooter] #2: Tạo Nhân Vật & Bắn Đạn 74

Rồi add cho mình

3 animation là : idle – move – shoot

Handgun – Rifle – Shotgun bạn có thể lấy ở trong

[Godot Shooter] #2: Tạo Nhân Vật & Bắn Đạn 75

Kéo hết vô 3 cái nhé

[Godot Shooter] #2: Tạo Nhân Vật & Bắn Đạn 76

Set CollisionShape2D lại nhé.

[Godot Shooter] #2: Tạo Nhân Vật & Bắn Đạn 77

Code:

Tiếp đế là code. Chúng ta sẽ kiểm tra nếu như player di chuyển thì sẽ chạy animation move và đứng im chạy animation idle, bắn thì chạy animation shoot.

[Godot Shooter] #2: Tạo Nhân Vật & Bắn Đạn 78

Tiếp theo vì đây là game bắn súng chúng ta phải để nhân vật nó xoay theo hướng chuột thì chúng ta có câu lệnh: look_at(get_global_mouse_position())

[Godot Shooter] #2: Tạo Nhân Vật & Bắn Đạn 79

Tiếp theo set camera nhé nhìn cho dễ:

Thêm node camera2D ở Zoom chỉnh lại cho nó dễ nhìn nhé mấy bạn.

[Godot Shooter] #2: Tạo Nhân Vật & Bắn Đạn 80

BẮN ĐẠN

Tiếp theo chúng ta sẽ tạo đạn để bắn  piu piu

Link down: https://drive.google.com/file/d/1fr4xNtR-s5qS49G5N98in3oTVlVJyxAN/view?usp=sharing

Bạn tải về nhé.

Xong sau đó tạo sence mới

Nút gốc là Area 2D để kiểm tra khi bullet va chạm

CollisionShape2D

Sprite

[Godot Shooter] #2: Tạo Nhân Vật & Bắn Đạn 81

Các bạn kéo cái ảnh viên đạn vào Sprite

Rồi set collisionShape2D luôn

Rồi đổi tên thành Bullet

[Godot Shooter] #2: Tạo Nhân Vật & Bắn Đạn 82

Tạo Script mới

[Godot Shooter] #2: Tạo Nhân Vật & Bắn Đạn 83

Ở đây mình sẽ thêm 1 hàm để viên đạn có thể spawn ở vị trí nào đó mà bạn muốn và Sát thương (damage)

func start_at(pos, dir):
position = pos
rotation = dir
velocity = Vector2(speed, 0).rotated(dir)

position =pos : nghĩa là vị trí của cái viên đạn sẽ bác cái pos

rotation = độ xoay của viên đạn

[Godot Shooter] #2: Tạo Nhân Vật & Bắn Đạn 84

Tiếp theo thì sẽ tạo 1 hàm để gán tốc độ cho viên đạn để nó có thể fly

func _physics_process(delta):
position += velocity * delta

[Godot Shooter] #2: Tạo Nhân Vật & Bắn Đạn 85

À các bạn nhớ quay 2 nút Sprite và Collishape sang ngang nhé nếu không muốn nó bắn dọc

Rồi tiếp theo chúng ta phải check xem nếu như viên đạn ra khỏi màn hình thì nó tự huỷ để không thể tích lại gây lag.

Rồi các bạn thêm nút VisibilityNotifier2D sau đó chỉnh sao chó ổn là được. Rồi sau đó connect tín hiệu screen_exit  (thoát khỏi màn hình)

[Godot Shooter] #2: Tạo Nhân Vật & Bắn Đạn 86

[Godot Shooter] #2: Tạo Nhân Vật & Bắn Đạn 87

Rồi ở câu đó chúng ta thêm câu lệnh : queue_free()

[Godot Shooter] #2: Tạo Nhân Vật & Bắn Đạn 88

Rồi tiếp theo chúng ta  sẽ bắn nó.

Trước đó bạn cần phải có sence của bullet để có thể add nó vào và dùng onready là khi chạy thì nó sẽ được load luôn

[Godot Shooter] #2: Tạo Nhân Vật & Bắn Đạn 89

Rồi sau đó check nếu nhấn phím F nó sẽ bắn

[Godot Shooter] #2: Tạo Nhân Vật & Bắn Đạn 90

get_parent().add_child(b): nghĩa là nó sẽ lấy bố mẹ rồi add_child tức là thêm cái nút đạn vào nếu có video thì mình sẽ minh hoạ dễ hơn.

b.start_at(global_position,rotation) : global_position = vị trí của nhân vật, rotation là cái góc xoay.

Khi bắn bạn sẽ thấy nó xuất hiện ở giữa player, chúng ta cần phải chỉnh cho nó ra ngoài cây súng.Vậy thì làm như sau.

Bạn thêm nút Position2D rồi kéo nó vô chỗ mà bạn muốn viên đạn xuất hiện

[Godot Shooter] #2: Tạo Nhân Vật & Bắn Đạn 91

Tiếp theo thì đơn giản thôi bạn chỉ cần thêm $Position2D vào trước cái global_position để spawn ở cái chỗ trên

[Godot Shooter] #2: Tạo Nhân Vật & Bắn Đạn 92

Và nếu chạy thì bạn sẽ gặp trường hợp như ảnh

[Godot Shooter] #2: Tạo Nhân Vật & Bắn Đạn 93

Và bài sau sẽ có cách fix

Code Player:

extends KinematicBody2D




export var speed = 200




onready var bullet = preload("res://Canh/Bulet.tscn")

func _physics_process(delta):

look_at(get_global_mouse_position())

laydau_nhapvao(delta)




func laydau_nhapvao(delta):

var vector_dauvao = Vector2.ZERO

vector_dauvao.x = Input.get_action_strength("ui_right") - Input.get_action_strength("ui_left")

vector_dauvao.y = Input.get_action_strength("ui_down") - Input.get_action_strength("ui_up")

vector_dauvao = vector_dauvao.normalized()

if vector_dauvao != Vector2.ZERO:

$AnimatedSprite.play("move")

else:

$AnimatedSprite.play("idle")

var dichuyen = vector_dauvao * speed * delta

if Input.is_key_pressed(KEY_F):

shoot()

dichuyen = move_and_collide(dichuyen)

func shoot():

var b = bullet.instance()

get_parent().add_child(b)

b.start_at($Position2D.global_position,rotation)
Tags: Godotgodot 2d gameGODOT ENGINElập trình game với godot
Previous Post

Hướng dẫn nhận 2GB 3G từ VinaPhone và vnEdu

Next Post

Tạo Website với Domain .com miễn phí bằng Iban với Jimbo

Kỳ Lục

Kỳ Lục

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 97
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 98
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 99
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 100
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 101
Godot

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

29/11/2021
Next Post
reg domain free jimbo

Tạo Website với Domain .com miễn phí bằng Iban với Jimbo

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

doi icon recycle bin hinh con meo

Cách đổi Icon Thùng rác thành hình con mèo hả mồm

26/05/2022
Cách mở khóa Bootloader trên điện thoại Xiaomi bằng Mi Unlock 102

Cách mở khóa Bootloader trên điện thoại Xiaomi bằng Mi Unlock

26/05/2022
5 Extension Chrome "mờ ám" bạn cần phải xóa ngay 103

5 Extension Chrome “mờ ám” bạn cần phải xóa ngay

25/05/2022
5 Website giúp bạn tìm chủ tài khoản Email là ai 104

5 Website giúp bạn tìm chủ tài khoản Email là ai

24/05/2022
godeal24

Giá bản quyền Windows 10 chỉ 5.71$, miễn phí nâng cấp lên Windows 11

23/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

  • Cách đổi Icon Thùng rác thành hình con mèo hả mồm
  • Cách mở khóa Bootloader trên điện thoại Xiaomi bằng Mi Unlock
  • Cách thắng Game bắn cá
  • 5 Extension Chrome “mờ ám” bạn cần phải xóa ngay
  • 5 Website giúp bạn tìm chủ tài khoản Email là ai
  • Giá bản quyền Windows 10 chỉ 5.71$, miễn phí nâng cấp lên Windows 11

©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 SP666 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 SP666 92lottery sun86 stackoverflow

wpDiscuz
pixel