• 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 15: Thêm animation bị thương cho Player

DeathGM by DeathGM
18/11/2021
in Godot
Reading Time: 3 mins read
A A
0

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

  1. Animation bị thương
    1. Thêm animation
    2. Áp dụng animation
  2. Tổng Kết

Trong phần này mình sẽ thêm add thêm animation bị thương cho Player còn về kẻ thù thì đã thêm ở phần trước, phần này thì cũng dễ tương tự như phần trước thôi.

Animation bị thương

Thêm animation

Ở phần thiết kế nhân vật thì mình chưa thêm animation bị thương vào cho nên bạn sẽ thêm vào cho mình nhé.

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

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

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? 12

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

03/03/2022

[Tạo 2D Platformer Game với Godot] Phần 15: Thêm animation bị thương cho player

Add cho mình 1 animation tên là bithuong rồi các bạn sẽ tự add lại chứ  mình không hướng dẫn và cũng như ôn lại kiến thức.

Sau đó thì tắt loop luôn nha.

Áp dụng animation

Thì như đã nói ở đâu bài, cách hoạt động của nó cũng không khác gì với phần trước cả.

Mình sẽ tạo 1 biến là bithuong để kiểm tra đang bị thường hay không sau đó khi bị kẻ thù tấn công thì bithuong = true, dangtancong = false để nếu mà bị kẻ thù tấn công nó sẽ không tấn công nữa mà chạy animation bị thương và chạy animation bị thương. Và mình cũng check thêm ở các điều kiện khác.

Sau đó nếu kết thúc Animation bị thương thì bithuong = false

 

var bithuong = false

Biến bị thương nè.

 

func _on_Hurtbox_area_entered(area):
    if area.name == "Hitbox" and area.get_parent().dangtancong == true:
        mau -= area.get_parent().satthuong
        dangtancong = false
        bithuong = true
        animation.play("bithuong")

Nếu như bị đánh thì dangtancong = false, bithuong = true và chạy animation bị thương.

 

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

Check nếu animation bị thương kết thúc thì biến bithuong = false.

 

if !dangtancong and not bithuong:
    huong_dichuyen = Input.get_axis("ui_left","ui_right")
    if huong_dichuyen != 0:
        chuyendong.x = lerp(chuyendong.x,huong_dichuyen * tocdo,0.5)
        animation.play("chay")
        scale.x = scale.y * huong_dichuyen
    else:
        chuyendong.x = lerp(chuyendong.x,0,0.5)
        animation.play("dungyen")

    if is_on_floor():
        if Input.is_action_just_pressed("ui_accept") :
            chuyendong.y = -250
    else:
        animation.play("nhay")

Thêm điều kiện vào để khi bị thương thì mình không thể di chuyển cho đến khi nó kết thúc.

if Input.is_key_pressed(KEY_J) and is_on_floor():
    if not bithuong:
        dangtancong = true
        chuyendong.x = 0
        animation.play("tancong")

Kiểm tra khi nhấn phím tấn công và không trong trạng thái bị thường thì tấn công.

 

extends KinematicBody2D

var tocdo = 200
var trongluc = 10
var chuyendong = Vector2()
var huong_dichuyen = 1

onready var animation = $AnimatedSprite
var dangtancong = false
var bithuong = false

var mau = 20
var satthuong = 10

func _physics_process(delta):
    
    if !dangtancong and not bithuong:
        huong_dichuyen = Input.get_axis("ui_left","ui_right")
        if huong_dichuyen != 0:
            chuyendong.x = lerp(chuyendong.x,huong_dichuyen * tocdo,0.5)
            animation.play("chay")
            scale.x = scale.y * huong_dichuyen
        else:
            chuyendong.x = lerp(chuyendong.x,0,0.5)
            animation.play("dungyen")

        if is_on_floor():
            if Input.is_action_just_pressed("ui_accept") :
                chuyendong.y = -250
        else:
            animation.play("nhay")
    if Input.is_key_pressed(KEY_J) and is_on_floor():
        if not bithuong:
            dangtancong = true
            chuyendong.x = 0
            animation.play("tancong")
    
    chuyendong.y += trongluc 
    chuyendong.normalized()
    chuyendong = move_and_slide(chuyendong,Vector2.UP) 
    
    if mau <= 0:
        set_physics_process(false)
        animation.play("chet")
        $CollisionShape2D.disabled = true
func _on_AnimatedSprite_animation_finished():
    if animation.animation == "tancong":
        dangtancong = false
    if animation.animation == "bithuong":
        bithuong = false
func _on_AnimatedSprite_frame_changed():
    if animation.animation == "tancong":
        if animation.frame == 3:
            $Hitbox/CollisionShape2D.disabled = false
        else:
            $Hitbox/CollisionShape2D.disabled = true 

func _on_Hurtbox_area_entered(area):
    if area.name == "Hitbox" and area.get_parent().dangtancong == true:
        mau -= area.get_parent().satthuong
        dangtancong = false
        bithuong = true
        animation.play("bithuong")

Và mình có full code của phần này như trên.

[Tạo 2D Platformer Game với Godot] Phần 15: Thêm animation bị thương cho Player 10

Và mình có kết quả cuối cùng.

Tổng Kết

Vậy trong phần này mình đã hướng dẫn bạn cách để có thể sử dụng animation bị thương cho nhân vật.

 

 

 

 

 

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

Cách tăng kết quả tìm kiếm trên mỗi trang Google

Next Post

Cách lưu lại Video cuộc họp/buổi học trên Microsoft Teams

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 13
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 14
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 15
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 16
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 17
Godot

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

29/11/2021
Next Post
Cách lưu lại Video cuộc họp/buổi học trên Microsoft Teams 18

Cách lưu lại Video cuộc họp/buổi học trên Microsoft Teams

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? 19

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 20

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