<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	 xmlns:media="http://search.yahoo.com/mrss/" >

<channel>
	<title>AnimationPlayer &#8211; AnonyViet &#8211; English Version</title>
	<atom:link href="https://en.anonyviet.com/tag/animationplayer/feed/" rel="self" type="application/rss+xml" />
	<link>https://en.anonyviet.com</link>
	<description>The most popular website for sharing information technology, computer networks, and security knowledge. Stay up to date with the hottest news and tips</description>
	<lastBuildDate>Wed, 01 Feb 2023 10:54:34 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0.2</generator>

<image>
	<url>https://en.anonyviet.com/wp-content/uploads/2023/01/cropped-ico-logo-75x75-1.png</url>
	<title>AnimationPlayer &#8211; AnonyViet &#8211; English Version</title>
	<link>https://en.anonyviet.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>[Lập Trình Game] Bài 13: AnimationPlayer, SpriteSheet và Tấn Công Kẻ Thù</title>
		<link>https://en.anonyviet.com/lap-trinh-game-bai-13-animationplayer-spritesheet-va-tan-cong-ke-thu/</link>
					<comments>https://en.anonyviet.com/lap-trinh-game-bai-13-animationplayer-spritesheet-va-tan-cong-ke-thu/#respond</comments>
		
		<dc:creator><![CDATA[AnonyViet]]></dc:creator>
		<pubDate>Wed, 01 Feb 2023 10:54:34 +0000</pubDate>
				<category><![CDATA[Tips]]></category>
		<category><![CDATA[AnimationPlayer]]></category>
		<category><![CDATA[bài]]></category>
		<category><![CDATA[công]]></category>
		<category><![CDATA[Game]]></category>
		<category><![CDATA[kế]]></category>
		<category><![CDATA[lập]]></category>
		<category><![CDATA[SpriteSheet]]></category>
		<category><![CDATA[Tấn]]></category>
		<category><![CDATA[thử]]></category>
		<category><![CDATA[trình]]></category>
		<category><![CDATA[và]]></category>
		<guid isPermaLink="false">https://en.anonyviet.com/?p=7884</guid>

					<description><![CDATA[Tiếp nối phần 12 trong phần này mình sẽ hướng dẫn các bạn về: Tham gia kênh Telegram của AnonyViet  👉 Link 👈 Tấn công kẻ thù (attack enemy) Kẻ thù tấn công Spritesheet AnimationPlayer Mask/Layer Đầu tiên các bạn tải cho mình animation slash tức là animation chém vì trong asset kia không có [&#8230;]]]></description>
										<content:encoded><![CDATA[<p></p>
<div id="ftwp-postcontent">
<p>Tiếp nối phần 12 trong phần này mình sẽ hướng dẫn các bạn về:</p>
<div class="code-block code-block-16" style="margin: 8px 0; clear: both;">
<div align="center">
<table class=" aligncenter" style="background-color: #c0c0c0; border-collapse: collapse; width: 59.9985%;">
<tbody>
<tr>
<td style="width: 100%; text-align: center;"><span style="font-size: 12pt;"><strong>Tham gia kênh <span style="color: #0000ff;">Telegram</span> của <span style="color: #008080;">AnonyViet </span> 👉 <span style="text-decoration: underline;"><a target="_blank" href="https://en.anonyviet.com/next-link?url=https%3A%2F%2Ft.me%2Fanonyvietchat" class="local-link" rel="noopener">Link</a></span> 👈</strong></span></td>
</tr>
</tbody>
</table>
</div>
</div>
<ul>
<li>Tấn công kẻ thù (attack enemy)</li>
<li>Kẻ thù tấn công</li>
<li>Spritesheet</li>
<li>AnimationPlayer</li>
<li>Mask/Layer</li>
</ul>
<p>Đầu tiên các bạn tải cho mình animation slash tức là animation chém vì trong asset kia không có animation tấn công nên chúng ta sẽ lấy cái khác.</p>
<p><strong>Bạn có thể download ở dưới:</strong></p>
<p style="text-align: center;"><a target="_blank" href="https://en.anonyviet.com/next-link/?url=https%3A%2F%2Fdrive.google.com%2Ffile%2Fd%2F1D3LHGurqf0dMC5cKgzwCoRTczs42Xff9%2Fview" rel="noopener noreferrer external nofollow" class="ext-link" onclick="this.target='_blank';">Download</a></p>
<p>Hoặc save ảnh này</p>
<p><a target="_blank" href="https://en.anonyviet.com/next-link?url=https%3A%2F%2Fanonyviet.com%2Fwp-content%2Fuploads%2F2020%2F06%2F123slash.png" rel="noopener" class="local-link"><img fetchpriority="high" decoding="async" class="aligncenter wp-image-20049 size-medium" src="https://anonyviet.com/wp-content/uploads/2020/06/123slash-250x300.png" alt="[Lập Trình Game] Bài 13: AnimationPlayer, SpriteSheet và Tấn Công Kẻ Thù 37" width="250" height="300" srcset="https://anonyviet.com/wp-content/uploads/2020/06/123slash-250x300.png 250w, https://anonyviet.com/wp-content/uploads/2020/06/123slash-853x1024.png 853w, https://anonyviet.com/wp-content/uploads/2020/06/123slash-768x922.png 768w, https://anonyviet.com/wp-content/uploads/2020/06/123slash-750x900.png 750w, https://anonyviet.com/wp-content/uploads/2020/06/123slash.png 960w" sizes="(max-width: 250px) 100vw, 250px" title="[Lập Trình Game] Bài 13: AnimationPlayer, SpriteSheet và Tấn Công Kẻ Thù 40"/></a></p>
<p>Note: Trước khi đi vào bài thì ở bài tạo menu chỗ trò chơi mới thì mình sơ suất code lỗi 1 dòng</p>
<p><a target="_blank" href="https://en.anonyviet.com/next-link?url=https%3A%2F%2Fanonyviet.com%2Fwp-content%2Fuploads%2F2020%2F06%2Fimage001.png" rel="noopener" class="local-link"><img decoding="async" loading="lazy" class="aligncenter wp-image-20014 size-full" src="https://anonyviet.com/wp-content/uploads/2020/06/image001.png" alt="godot engine AnimationPlayer, SpriteSheet và Tấn Công Kẻ Thù" width="563" height="269" srcset="https://anonyviet.com/wp-content/uploads/2020/06/image001.png 563w, https://anonyviet.com/wp-content/uploads/2020/06/image001-300x143.png 300w" sizes="auto, (max-width: 563px) 100vw, 563px" title="[Lập Trình Game] Bài 13: AnimationPlayer, SpriteSheet và Tấn Công Kẻ Thù 41"/></a></p>
<p>Ở <strong>PackedSence</strong> các bạn đổi lại thành:</p>
<p><code>export(String,FILE,"*.tscn") var BoSenceVao</code></p>
<p>Và cùng bắt đầu thôi.</p>
<h2 id="ftoc-animation" class="ftwp-heading">Animation</h2>
<p>Đầu tiên chúng ta sẽ <strong>setup animation</strong> cho nó. Ở sence <strong>Player</strong> chúng ta sẽ xài <strong>Node AnimationPlayer</strong>. Đây là nút dùng để chứa và chạy tài nguyên (animation) giải thích thì khó hiểu nhưng mà khi làm thì sẽ hiểu nhé.</p>
<p>Các bạn tạo <strong>node animation</strong> và tạo 1 cái animation mới</p>
<p><a target="_blank" href="https://en.anonyviet.com/next-link?url=https%3A%2F%2Fanonyviet.com%2Fwp-content%2Fuploads%2F2020%2F06%2Fimage002.png" rel="noopener" class="local-link"><img decoding="async" loading="lazy" class="aligncenter size-full wp-image-20015" src="https://anonyviet.com/wp-content/uploads/2020/06/image002.png" alt="[Lập Trình Game] Bài 13: AnimationPlayer, SpriteSheet và Tấn Công Kẻ Thù 38" width="769" height="432" srcset="https://anonyviet.com/wp-content/uploads/2020/06/image002.png 769w, https://anonyviet.com/wp-content/uploads/2020/06/image002-300x169.png 300w, https://anonyviet.com/wp-content/uploads/2020/06/image002-750x421.png 750w" sizes="auto, (max-width: 769px) 100vw, 769px" title="[Lập Trình Game] Bài 13: AnimationPlayer, SpriteSheet và Tấn Công Kẻ Thù 42"/></a></p>
<p>Mình sẽ để tên nó là <strong>chem</strong></p>
<p>Và ở đây chúng ta vẫn chưa có 1 nút nào chứa tài ngyên chém (animation chém) vì vậy chúng ta phải tạo 1 nút để <strong>AnimationPlayer</strong> có thể chạy cái tài nguyên đó(chạy animation). Ở đây mình sẽ tạo 1 cái nút là <strong>sprite</strong> rồi bỏ ảnh chém vào.</p>
<p>Ở đây các bạn có thể thấy nó là dạng sprite sheet</p>
<p><a target="_blank" href="https://en.anonyviet.com/next-link?url=https%3A%2F%2Fanonyviet.com%2Fwp-content%2Fuploads%2F2020%2F06%2Fimage003.png" rel="noopener" class="local-link"><img decoding="async" loading="lazy" class="aligncenter size-full wp-image-20016" src="https://anonyviet.com/wp-content/uploads/2020/06/image003.png" alt="[Lập Trình Game] Bài 13: AnimationPlayer, SpriteSheet và Tấn Công Kẻ Thù 39" width="550" height="437" srcset="https://anonyviet.com/wp-content/uploads/2020/06/image003.png 550w, https://anonyviet.com/wp-content/uploads/2020/06/image003-300x238.png 300w" sizes="auto, (max-width: 550px) 100vw, 550px" title="[Lập Trình Game] Bài 13: AnimationPlayer, SpriteSheet và Tấn Công Kẻ Thù 43"/></a></p>
<p>Chúng ta sẽ vào bảng <strong>Inspector</strong> của nút mới tạo.</p>
<p><a target="_blank" href="https://en.anonyviet.com/next-link?url=https%3A%2F%2Fanonyviet.com%2Fwp-content%2Fuploads%2F2020%2F06%2Fimage004.png" rel="noopener" class="local-link"><img decoding="async" loading="lazy" class="aligncenter size-full wp-image-20017" src="https://anonyviet.com/wp-content/uploads/2020/06/image004.png" alt="[Lập Trình Game] Bài 13: AnimationPlayer, SpriteSheet và Tấn Công Kẻ Thù 40" width="253" height="410" srcset="https://anonyviet.com/wp-content/uploads/2020/06/image004.png 253w, https://anonyviet.com/wp-content/uploads/2020/06/image004-185x300.png 185w" sizes="auto, (max-width: 253px) 100vw, 253px" title="[Lập Trình Game] Bài 13: AnimationPlayer, SpriteSheet và Tấn Công Kẻ Thù 44"/></a></p>
<p>Và ở Animation thì có 4 cái:</p>
<ul>
<li><strong>Vframes</strong>: Chiều dọc của frame</li>
<li><strong>Hframes</strong>: Chiều ngang của frame</li>
<li><strong>Frame</strong>: Số frame đang ở hiện tại</li>
<li><strong>FrameCoord</strong>: Khi bạn thay đổi chỉ số tọa độ thì frame sẽ tự động điều chỉnh đến số tọa độ mà bạn chỉnh sửa</li>
</ul>
<p>À ai chưa biết frame là gì thì frame là: Khung</p>
<p>Vd thì nhìn dưới ảnh những số mình vẽ = 1 frame nhé.</p>
<p><a target="_blank" href="https://en.anonyviet.com/next-link?url=https%3A%2F%2Fanonyviet.com%2Fwp-content%2Fuploads%2F2020%2F06%2Fimage005.png" rel="noopener" class="local-link"><img decoding="async" loading="lazy" class="aligncenter size-full wp-image-20018" src="https://anonyviet.com/wp-content/uploads/2020/06/image005.png" alt="[Lập Trình Game] Bài 13: AnimationPlayer, SpriteSheet và Tấn Công Kẻ Thù 41" width="501" height="210" srcset="https://anonyviet.com/wp-content/uploads/2020/06/image005.png 501w, https://anonyviet.com/wp-content/uploads/2020/06/image005-300x126.png 300w" sizes="auto, (max-width: 501px) 100vw, 501px" title="[Lập Trình Game] Bài 13: AnimationPlayer, SpriteSheet và Tấn Công Kẻ Thù 45"/></a></p>
<p>Tiếp đến chúng ta sẽ set frame cho nó.</p>
<p>VFrame là chiều dọc vậy chúng ta sẽ đếm frame theo chiều dọc và Hframe là chiều ngang thì chúng ta cũng đếm từ chiều ngang đếm được bao nhiều thì điền vào bấy nhiêu.</p>
<p><a target="_blank" href="https://en.anonyviet.com/next-link?url=https%3A%2F%2Fanonyviet.com%2Fwp-content%2Fuploads%2F2020%2F06%2Fimage006.png" rel="noopener" class="local-link"><img decoding="async" loading="lazy" class="aligncenter size-full wp-image-20019" src="https://anonyviet.com/wp-content/uploads/2020/06/image006.png" alt="[Lập Trình Game] Bài 13: AnimationPlayer, SpriteSheet và Tấn Công Kẻ Thù 42" width="461" height="461" srcset="https://anonyviet.com/wp-content/uploads/2020/06/image006.png 461w, https://anonyviet.com/wp-content/uploads/2020/06/image006-300x300.png 300w, https://anonyviet.com/wp-content/uploads/2020/06/image006-150x150.png 150w, https://anonyviet.com/wp-content/uploads/2020/06/image006-75x75.png 75w" sizes="auto, (max-width: 461px) 100vw, 461px" title="[Lập Trình Game] Bài 13: AnimationPlayer, SpriteSheet và Tấn Công Kẻ Thù 46"/></a></p>
<p>Vậy :</p>
<ul>
<li>Vframes của mình là 6</li>
<li>Hframes là 5</li>
</ul>
<p><strong>Lưu ý: Nếu frame của bạn bị lệch không theo thứ tự tức là:</strong></p>
<ol>
<li><strong>Bạn set Vframes và Hframse chưa chính xác</strong></li>
<li><strong>Spritesheet sai vị trí</strong></li>
</ol>
<p>Rồi sau đó bạn nhấn hide cái nút chém đi nhé, biều tưởng mắt bên phải nút</p>
<p>Vậy là đã xong và tiếp theo chúng ta sẽ sử dụng <strong>AnimationPlayer</strong> để chạy animation chém</p>
<p><strong>Đầu tiên:</strong></p>
<p>Ở Animation chem vừa tạo các bạn nhấn <strong>Add Track &gt; Poperty Track</strong></p>
<p><a target="_blank" href="https://en.anonyviet.com/next-link?url=https%3A%2F%2Fanonyviet.com%2Fwp-content%2Fuploads%2F2020%2F06%2Fimage007.png" rel="noopener" class="local-link"><img decoding="async" loading="lazy" class="aligncenter size-full wp-image-20020" src="https://anonyviet.com/wp-content/uploads/2020/06/image007.png" alt="[Lập Trình Game] Bài 13: AnimationPlayer, SpriteSheet và Tấn Công Kẻ Thù 43" width="769" height="432" srcset="https://anonyviet.com/wp-content/uploads/2020/06/image007.png 769w, https://anonyviet.com/wp-content/uploads/2020/06/image007-300x169.png 300w, https://anonyviet.com/wp-content/uploads/2020/06/image007-750x421.png 750w" sizes="auto, (max-width: 769px) 100vw, 769px" title="[Lập Trình Game] Bài 13: AnimationPlayer, SpriteSheet và Tấn Công Kẻ Thù 47"/></a></p>
<p>Chọn cho mình cái nút mà chúng ta vừa tạo ở trên</p>
<p><a target="_blank" href="https://en.anonyviet.com/next-link?url=https%3A%2F%2Fanonyviet.com%2Fwp-content%2Fuploads%2F2020%2F06%2Fimage008.png" rel="noopener" class="local-link"><img decoding="async" loading="lazy" class="aligncenter size-full wp-image-20021" src="https://anonyviet.com/wp-content/uploads/2020/06/image008.png" alt="[Lập Trình Game] Bài 13: AnimationPlayer, SpriteSheet và Tấn Công Kẻ Thù 44" width="266" height="330" srcset="https://anonyviet.com/wp-content/uploads/2020/06/image008.png 266w, https://anonyviet.com/wp-content/uploads/2020/06/image008-242x300.png 242w" sizes="auto, (max-width: 266px) 100vw, 266px" title="[Lập Trình Game] Bài 13: AnimationPlayer, SpriteSheet và Tấn Công Kẻ Thù 48"/></a></p>
<p>Rồi tìm cho mình cái frame</p>
<p><a target="_blank" href="https://en.anonyviet.com/next-link?url=https%3A%2F%2Fanonyviet.com%2Fwp-content%2Fuploads%2F2020%2F06%2Fimage009.png" rel="noopener" class="local-link"><img decoding="async" loading="lazy" class="aligncenter size-full wp-image-20022" src="https://anonyviet.com/wp-content/uploads/2020/06/image009.png" alt="[Lập Trình Game] Bài 13: AnimationPlayer, SpriteSheet và Tấn Công Kẻ Thù 45" width="834" height="444" srcset="https://anonyviet.com/wp-content/uploads/2020/06/image009.png 834w, https://anonyviet.com/wp-content/uploads/2020/06/image009-300x160.png 300w, https://anonyviet.com/wp-content/uploads/2020/06/image009-768x409.png 768w, https://anonyviet.com/wp-content/uploads/2020/06/image009-750x399.png 750w" sizes="auto, (max-width: 834px) 100vw, 834px" title="[Lập Trình Game] Bài 13: AnimationPlayer, SpriteSheet và Tấn Công Kẻ Thù 49"/></a></p>
<p>Ở đây nghĩa là <strong>AnimationPlayer</strong> sẽ truy cập vào nút animation chém và sẽ lấy tài nguyên từ đó tạo thành 1 animation hoặc có thể hiểu là AnimationPlayer sẽ chạy frame theo cách mà bạn muốn từ frame 0-5 hoặc 5-1 hoặc 5-10 v.v…</p>
<p>Ở đây mình sẽ giải thích cho các bạn 1 số tool trong <strong>AnimationPlayer</strong></p>
<p><a target="_blank" href="https://en.anonyviet.com/next-link?url=https%3A%2F%2Fanonyviet.com%2Fwp-content%2Fuploads%2F2020%2F06%2Fimage010.png" rel="noopener" class="local-link"><img decoding="async" loading="lazy" class="aligncenter size-full wp-image-20023" src="https://anonyviet.com/wp-content/uploads/2020/06/image010.png" alt="[Lập Trình Game] Bài 13: AnimationPlayer, SpriteSheet và Tấn Công Kẻ Thù 46" width="583" height="208" srcset="https://anonyviet.com/wp-content/uploads/2020/06/image010.png 583w, https://anonyviet.com/wp-content/uploads/2020/06/image010-300x107.png 300w" sizes="auto, (max-width: 583px) 100vw, 583px" title="[Lập Trình Game] Bài 13: AnimationPlayer, SpriteSheet và Tấn Công Kẻ Thù 50"/></a></p>
<ul>
<li>Màu đỏ: Thời Gian chạy Frame</li>
<li>Màu Xanh Sáng: Chỉnh độ nhìn thời gian</li>
<li>Màu Xanh Lá Cây: Chỉnh kiểu chạy Frame liên tục hay cắt đứt,vv</li>
<li>Mà Đen: Lặp lại Animation</li>
<li>Mà Xanh Đậm: Chạy Animation khi bắt đầu</li>
</ul>
<p>Rồi tiếp đến các bạn nhấn chuột phải vào Track mới tạo nhấn insert key</p>
<p><a target="_blank" href="https://en.anonyviet.com/next-link?url=https%3A%2F%2Fanonyviet.com%2Fwp-content%2Fuploads%2F2020%2F06%2Fimage011.png" rel="noopener" class="local-link"><img decoding="async" loading="lazy" class="aligncenter size-full wp-image-20024" src="https://anonyviet.com/wp-content/uploads/2020/06/image011.png" alt="[Lập Trình Game] Bài 13: AnimationPlayer, SpriteSheet và Tấn Công Kẻ Thù 47" width="769" height="432" srcset="https://anonyviet.com/wp-content/uploads/2020/06/image011.png 769w, https://anonyviet.com/wp-content/uploads/2020/06/image011-300x169.png 300w, https://anonyviet.com/wp-content/uploads/2020/06/image011-750x421.png 750w" sizes="auto, (max-width: 769px) 100vw, 769px" title="[Lập Trình Game] Bài 13: AnimationPlayer, SpriteSheet và Tấn Công Kẻ Thù 51"/></a></p>
<p>Ở đây mình sẽ Insert 5 cái Keys tức là 5 cái frame đầu tiên.</p>
<p><strong>Lưu Ý: Frame đầu tiên sẽ là = 0</strong></p>
<p>Các bạn nhấn vô Keys rồi bên bảng Inspector ở cái Value là giá trị frame nhé.Muốn chạy frame nào thì điền vô và nhớ cái đầu tiên sẽ = 0</p>
<p><a target="_blank" href="https://en.anonyviet.com/next-link?url=https%3A%2F%2Fanonyviet.com%2Fwp-content%2Fuploads%2F2020%2F06%2Fimage012.png" rel="noopener" class="local-link"><img decoding="async" loading="lazy" class="aligncenter size-full wp-image-20025" src="https://anonyviet.com/wp-content/uploads/2020/06/image012.png" alt="[Lập Trình Game] Bài 13: AnimationPlayer, SpriteSheet và Tấn Công Kẻ Thù 48" width="743" height="413" srcset="https://anonyviet.com/wp-content/uploads/2020/06/image012.png 743w, https://anonyviet.com/wp-content/uploads/2020/06/image012-300x167.png 300w" sizes="auto, (max-width: 743px) 100vw, 743px" title="[Lập Trình Game] Bài 13: AnimationPlayer, SpriteSheet và Tấn Công Kẻ Thù 52"/></a></p>
<p>ở mấy cái tiếp theo các bạn chỉnh lên 0-5 nghĩa là sẽ chạy 5 cái frame đầu tiên trong ảnh chém</p>
<p><a target="_blank" href="https://en.anonyviet.com/next-link?url=https%3A%2F%2Fanonyviet.com%2Fwp-content%2Fuploads%2F2020%2F06%2Fimage013.png" rel="noopener" class="local-link"><img decoding="async" loading="lazy" class="aligncenter size-full wp-image-20026" src="https://anonyviet.com/wp-content/uploads/2020/06/image013.png" alt="[Lập Trình Game] Bài 13: AnimationPlayer, SpriteSheet và Tấn Công Kẻ Thù 49" width="486" height="106" srcset="https://anonyviet.com/wp-content/uploads/2020/06/image013.png 486w, https://anonyviet.com/wp-content/uploads/2020/06/image013-300x65.png 300w" sizes="auto, (max-width: 486px) 100vw, 486px" title="[Lập Trình Game] Bài 13: AnimationPlayer, SpriteSheet và Tấn Công Kẻ Thù 53"/></a></p>
<p>Ở đây mình set thời gian lại thành 0.5 cho ngắn à và <strong>khi set time với cái này thì các bạn nên chọn từ 0.1-1 giây thôi nhé đừng có chọn 1-10 giây</strong></p>
<p>Tiếp đến chúng ta sẽ phải unhide nó nghĩa là phải hiện nó lên khi chém và ẩn khi kết thúc</p>
<p>Vì vậy các bạn Add thêm Track cho mình là Visible, đây là chức năng ẩn hiện trong inspector phần Canvas Item của nút</p>
<p><a target="_blank" href="https://en.anonyviet.com/next-link?url=https%3A%2F%2Fanonyviet.com%2Fwp-content%2Fuploads%2F2020%2F06%2Fimage014.png" rel="noopener" class="local-link"><img decoding="async" loading="lazy" class="aligncenter size-full wp-image-20027" src="https://anonyviet.com/wp-content/uploads/2020/06/image014.png" alt="[Lập Trình Game] Bài 13: AnimationPlayer, SpriteSheet và Tấn Công Kẻ Thù 50" width="813" height="346" srcset="https://anonyviet.com/wp-content/uploads/2020/06/image014.png 813w, https://anonyviet.com/wp-content/uploads/2020/06/image014-300x128.png 300w, https://anonyviet.com/wp-content/uploads/2020/06/image014-768x327.png 768w, https://anonyviet.com/wp-content/uploads/2020/06/image014-750x319.png 750w" sizes="auto, (max-width: 813px) 100vw, 813px" title="[Lập Trình Game] Bài 13: AnimationPlayer, SpriteSheet và Tấn Công Kẻ Thù 54"/></a></p>
<p>Ở đây mình sẽ Insert 2 Keys 1 keys là lúc bắt đầu chém tức là 0.1 thì nó sẽ hiện lên và 1 keys ở cuối tức là 0.4 sau khi chém xong sẽ ẩn</p>
<p>Ở Keys đầu tiên sẽ tick vào ô value là On và Keys cuối thì không tick</p>
<p><a target="_blank" href="https://en.anonyviet.com/next-link?url=https%3A%2F%2Fanonyviet.com%2Fwp-content%2Fuploads%2F2020%2F06%2Fimage015.png" rel="noopener" class="local-link"><img decoding="async" loading="lazy" class="aligncenter size-full wp-image-20028" src="https://anonyviet.com/wp-content/uploads/2020/06/image015.png" alt="[Lập Trình Game] Bài 13: AnimationPlayer, SpriteSheet và Tấn Công Kẻ Thù 51" width="737" height="314" srcset="https://anonyviet.com/wp-content/uploads/2020/06/image015.png 737w, https://anonyviet.com/wp-content/uploads/2020/06/image015-300x128.png 300w" sizes="auto, (max-width: 737px) 100vw, 737px" title="[Lập Trình Game] Bài 13: AnimationPlayer, SpriteSheet và Tấn Công Kẻ Thù 55"/></a></p>
<p>Tiếp đến các bạn nhấn nút Play để xem Animation</p>
<p><a target="_blank" href="https://en.anonyviet.com/next-link?url=https%3A%2F%2Fanonyviet.com%2Fwp-content%2Fuploads%2F2020%2F06%2Fimage016.png" rel="noopener" class="local-link"><img decoding="async" loading="lazy" class="aligncenter size-full wp-image-20029" src="https://anonyviet.com/wp-content/uploads/2020/06/image016.png" alt="[Lập Trình Game] Bài 13: AnimationPlayer, SpriteSheet và Tấn Công Kẻ Thù 52" width="161" height="58" title="[Lập Trình Game] Bài 13: AnimationPlayer, SpriteSheet và Tấn Công Kẻ Thù 56"/></a></p>
<p>Nó sẽ biến mất 1 cách hoàn hảo, nhưng nhược điểm ở đây là frame thứ 5 sẽ không xuất hiện vì cùng khoản thời gian là 0.4 nó đã bị ẩn bởi Track Visible vì vậy bạn có thể chỉnh thời gian lên 0.6 và  để cái keys mà Frame ẩn đi lên 0.5 là sẽ chạy đầy đủ frame.</p>
<p>Vậy là đã xong phần setup Animation tiếp theo chúng ta sẽ làm phần “Tấn công kẻ thù”</p>
<h2 id="ftoc-attack-enemy-va-layer-mask" class="ftwp-heading">Attack Enemy Và Layer/Mask</h2>
<p>Và đến phần tiếp theo và trong phần này sẽ có những cái phải làm như sau.</p>
<ol>
<li><strong>Hitbox Player:</strong> cái này sẽ là cái mà dùng để kiếm tra player sẽ tấn công vào cái gì đó.Ở trong đây thì nó sẽ kiểm tra player tấn công vào hurtbox enemy.Nghĩa là chúng ta dùng nút Hitbox Player để xác nhận rằng nó có va chạm với Hurtbox cuả Quái nếu nó xác nhận rằng hitbox của player có va chạm với hurtbox của Quái thì nó sẽ gây ra sát thương cho quái <a target="_blank" href="https://en.anonyviet.com/next-link?url=https%3A%2F%2Fanonyviet.com%2Fwp-content%2Fuploads%2F2020%2F06%2Fimage017.png" rel="noopener" class="local-link"><img decoding="async" loading="lazy" class="aligncenter size-full wp-image-20030" src="https://anonyviet.com/wp-content/uploads/2020/06/image017.png" alt="[Lập Trình Game] Bài 13: AnimationPlayer, SpriteSheet và Tấn Công Kẻ Thù 53" width="924" height="374" srcset="https://anonyviet.com/wp-content/uploads/2020/06/image017.png 924w, https://anonyviet.com/wp-content/uploads/2020/06/image017-300x121.png 300w, https://anonyviet.com/wp-content/uploads/2020/06/image017-768x311.png 768w, https://anonyviet.com/wp-content/uploads/2020/06/image017-750x304.png 750w" sizes="auto, (max-width: 924px) 100vw, 924px" title="[Lập Trình Game] Bài 13: AnimationPlayer, SpriteSheet và Tấn Công Kẻ Thù 57"/></a></li>
<li><strong>Hurtbox Player:</strong>Kiểm tra nếu hitbox của Quái va chạm vào thì sẽ gây sát thương cho player</li>
<li><strong>Hitbox Enemy:</strong> Dùng để va chạm với Hurtbox của Player để gây damage</li>
<li><strong>Hurtbox Enemy: </strong>Kiểm tra xem hitbox của player có va chạm không.Có thể hiểu là kiểm tra xem Player có đánh trúng quái không -_-.</li>
<li>Đó là Layer và Mask:<br />Layer và Mask là 2 cái dùng để chọn cái nào va chạm với cái nào.<br />– Layer = Tên Layer<br />– Mask = Chọn cái layer mà bạn muốn nó va chạmVD: Ở Player mình sẽ để là Layer 2 và Mask 2<br />Và Quái sẽ là Layer 3 và Mask 3.<br />Ở đây mình cả 2 cái đều ko liên quan tới nhau vậy nghĩa là 2 cái sẽ không va chạm mà đi qa nhau.Bây giờ mình muốn 2 cái khi chạm nhau sẽ không đi qua nhau và sẽ va chạm với nhau thì mình chỉ cần đổi lại mask thành mục tiêu muốn va chạm.<br />Player thì mình sẽ chọn Mask 3 tức là Layer 3 là Enemy<br />Quái thì chọn Mask 2 tức là Layer 2 là Player<br />Khi đó nó sẽ va chạm với nhau mà không bước qua đời nhau <a target="_blank" href="https://en.anonyviet.com/next-link?url=https%3A%2F%2Fanonyviet.com%2Fwp-content%2Fuploads%2F2020%2F06%2Fimage018.png" rel="noopener" class="local-link"><img decoding="async" loading="lazy" class="aligncenter size-full wp-image-20031" src="https://anonyviet.com/wp-content/uploads/2020/06/image018.png" alt="[Lập Trình Game] Bài 13: AnimationPlayer, SpriteSheet và Tấn Công Kẻ Thù 54" width="199" height="124" title="[Lập Trình Game] Bài 13: AnimationPlayer, SpriteSheet và Tấn Công Kẻ Thù 58"/></a></li>
</ol>
<p><strong>Tiếp:</strong></p>
<p>Các bạn tạo 1 sence mới và nút root là Area2D đổi tên thành hitbox  và nút con là collsion2D và ko set collsionshape cho nó nhé rồi lưu lại. Vậy là xong cái hitbox</p>
<p><a target="_blank" href="https://en.anonyviet.com/next-link?url=https%3A%2F%2Fanonyviet.com%2Fwp-content%2Fuploads%2F2020%2F06%2Fimage019.png" rel="noopener" class="local-link"><img decoding="async" loading="lazy" class="aligncenter size-full wp-image-20032" src="https://anonyviet.com/wp-content/uploads/2020/06/image019.png" alt="[Lập Trình Game] Bài 13: AnimationPlayer, SpriteSheet và Tấn Công Kẻ Thù 55" width="764" height="380" srcset="https://anonyviet.com/wp-content/uploads/2020/06/image019.png 764w, https://anonyviet.com/wp-content/uploads/2020/06/image019-300x149.png 300w, https://anonyviet.com/wp-content/uploads/2020/06/image019-360x180.png 360w, https://anonyviet.com/wp-content/uploads/2020/06/image019-750x373.png 750w" sizes="auto, (max-width: 764px) 100vw, 764px" title="[Lập Trình Game] Bài 13: AnimationPlayer, SpriteSheet và Tấn Công Kẻ Thù 59"/></a></p>
<p>Tiếp đến cái <strong>Hurtbox</strong> làm tương tự</p>
<p>À và chúng ta set mask layer cho nó nữa</p>
<p>Các bạn vô Project &gt; Project Setting &gt; Layer Names&gt; 2D Render % &amp; 2D Physic thì Render = Layer, Physic = Mask và tên cả 2 cái phải giống nhau để dễ phân biệt nhé.</p>
<p><a target="_blank" href="https://en.anonyviet.com/next-link?url=https%3A%2F%2Fanonyviet.com%2Fwp-content%2Fuploads%2F2020%2F06%2Fimage020.png" rel="noopener" class="local-link"><img decoding="async" loading="lazy" class="aligncenter size-full wp-image-20033" src="https://anonyviet.com/wp-content/uploads/2020/06/image020.png" alt="[Lập Trình Game] Bài 13: AnimationPlayer, SpriteSheet và Tấn Công Kẻ Thù 56" width="766" height="388" srcset="https://anonyviet.com/wp-content/uploads/2020/06/image020.png 766w, https://anonyviet.com/wp-content/uploads/2020/06/image020-300x152.png 300w, https://anonyviet.com/wp-content/uploads/2020/06/image020-750x380.png 750w" sizes="auto, (max-width: 766px) 100vw, 766px" title="[Lập Trình Game] Bài 13: AnimationPlayer, SpriteSheet và Tấn Công Kẻ Thù 60"/></a></p>
<p>Ở đây mình sẽ set là</p>
<p><a target="_blank" href="https://en.anonyviet.com/next-link?url=https%3A%2F%2Fanonyviet.com%2Fwp-content%2Fuploads%2F2020%2F06%2Fimage021.png" rel="noopener" class="local-link"><img decoding="async" loading="lazy" class="aligncenter size-full wp-image-20034" src="https://anonyviet.com/wp-content/uploads/2020/06/image021.png" alt="[Lập Trình Game] Bài 13: AnimationPlayer, SpriteSheet và Tấn Công Kẻ Thù 57" width="656" height="436" srcset="https://anonyviet.com/wp-content/uploads/2020/06/image021.png 656w, https://anonyviet.com/wp-content/uploads/2020/06/image021-300x199.png 300w" sizes="auto, (max-width: 656px) 100vw, 656px" title="[Lập Trình Game] Bài 13: AnimationPlayer, SpriteSheet và Tấn Công Kẻ Thù 61"/></a></p>
<p>Set 2 cái giống hệt nhau nha.</p>
<p>Tới cái hitbox thì đổi layer/mask lại thành không có cái nào nha</p>
<p><a target="_blank" href="https://en.anonyviet.com/next-link?url=https%3A%2F%2Fanonyviet.com%2Fwp-content%2Fuploads%2F2020%2F06%2Fimage022.png" rel="noopener" class="local-link"><img decoding="async" loading="lazy" class="aligncenter size-full wp-image-20035" src="https://anonyviet.com/wp-content/uploads/2020/06/image022.png" alt="[Lập Trình Game] Bài 13: AnimationPlayer, SpriteSheet và Tấn Công Kẻ Thù 58" width="245" height="173" srcset="https://anonyviet.com/wp-content/uploads/2020/06/image022.png 245w, https://anonyviet.com/wp-content/uploads/2020/06/image022-120x86.png 120w" sizes="auto, (max-width: 245px) 100vw, 245px" title="[Lập Trình Game] Bài 13: AnimationPlayer, SpriteSheet và Tấn Công Kẻ Thù 62"/></a></p>
<p>Rồi tiếp đó vô Sence Player và Instance 2 nút là Hitbox và HurtBox</p>
<p><a target="_blank" href="https://en.anonyviet.com/next-link?url=https%3A%2F%2Fanonyviet.com%2Fwp-content%2Fuploads%2F2020%2F06%2Fimage023.png" rel="noopener" class="local-link"><img decoding="async" loading="lazy" class="aligncenter size-full wp-image-20036" src="https://anonyviet.com/wp-content/uploads/2020/06/image023.png" alt="[Lập Trình Game] Bài 13: AnimationPlayer, SpriteSheet và Tấn Công Kẻ Thù 59" width="836" height="412" srcset="https://anonyviet.com/wp-content/uploads/2020/06/image023.png 836w, https://anonyviet.com/wp-content/uploads/2020/06/image023-300x148.png 300w, https://anonyviet.com/wp-content/uploads/2020/06/image023-768x378.png 768w, https://anonyviet.com/wp-content/uploads/2020/06/image023-750x370.png 750w" sizes="auto, (max-width: 836px) 100vw, 836px" title="[Lập Trình Game] Bài 13: AnimationPlayer, SpriteSheet và Tấn Công Kẻ Thù 63"/></a></p>
<p>Ở Hitbox và Hurtbox chuột phải chọn editable as children nghĩa là cho phép bạn chỉnh sử nút này như 1 nút con mà không ảnh hướng tới nút chính</p>
<p><a target="_blank" href="https://en.anonyviet.com/next-link?url=https%3A%2F%2Fanonyviet.com%2Fwp-content%2Fuploads%2F2020%2F06%2Fimage024.png" rel="noopener" class="local-link"><img decoding="async" loading="lazy" class="aligncenter size-full wp-image-20037" src="https://anonyviet.com/wp-content/uploads/2020/06/image024.png" alt="[Lập Trình Game] Bài 13: AnimationPlayer, SpriteSheet và Tấn Công Kẻ Thù 60" width="769" height="432" srcset="https://anonyviet.com/wp-content/uploads/2020/06/image024.png 769w, https://anonyviet.com/wp-content/uploads/2020/06/image024-300x169.png 300w, https://anonyviet.com/wp-content/uploads/2020/06/image024-750x421.png 750w" sizes="auto, (max-width: 769px) 100vw, 769px" title="[Lập Trình Game] Bài 13: AnimationPlayer, SpriteSheet và Tấn Công Kẻ Thù 64"/></a></p>
<p>Ở Hurtbox thì chọn <strong>collsion2D</strong> và <strong>setcollsion shape</strong> cho mình nhé</p>
<p><a target="_blank" href="https://en.anonyviet.com/next-link?url=https%3A%2F%2Fanonyviet.com%2Fwp-content%2Fuploads%2F2020%2F06%2Fimage025.png" rel="noopener" class="local-link"><img decoding="async" loading="lazy" class="aligncenter size-full wp-image-20038" src="https://anonyviet.com/wp-content/uploads/2020/06/image025.png" alt="[Lập Trình Game] Bài 13: AnimationPlayer, SpriteSheet và Tấn Công Kẻ Thù 61" width="983" height="245" srcset="https://anonyviet.com/wp-content/uploads/2020/06/image025.png 983w, https://anonyviet.com/wp-content/uploads/2020/06/image025-300x75.png 300w, https://anonyviet.com/wp-content/uploads/2020/06/image025-768x191.png 768w, https://anonyviet.com/wp-content/uploads/2020/06/image025-750x187.png 750w" sizes="auto, (max-width: 983px) 100vw, 983px" title="[Lập Trình Game] Bài 13: AnimationPlayer, SpriteSheet và Tấn Công Kẻ Thù 65"/></a></p>
<p>Và ở <strong>Hitbox &amp; Hurtbox</strong> các bạn set Layer cho nó nhé</p>
<p><a target="_blank" href="https://en.anonyviet.com/next-link?url=https%3A%2F%2Fanonyviet.com%2Fwp-content%2Fuploads%2F2020%2F06%2Fimage026.png" rel="noopener" class="local-link"><img alt="[Lập Trình Game] Bài 13: AnimationPlayer, SpriteSheet và Tấn Công Kẻ Thù" title="[Lập Trình Game] Bài 13: AnimationPlayer, SpriteSheet và Tấn Công Kẻ Thù" post-id="7884" fifu-featured="1" decoding="async" loading="lazy" class="aligncenter size-full wp-image-20039" src="https://anonyviet.com/wp-content/uploads/2020/06/image026.png" alt="[Lập Trình Game] Bài 13: AnimationPlayer, SpriteSheet và Tấn Công Kẻ Thù 62" width="769" height="432" srcset="https://anonyviet.com/wp-content/uploads/2020/06/image026.png 769w, https://anonyviet.com/wp-content/uploads/2020/06/image026-300x169.png 300w, https://anonyviet.com/wp-content/uploads/2020/06/image026-750x421.png 750w" sizes="auto, (max-width: 769px) 100vw, 769px" title="[Lập Trình Game] Bài 13: AnimationPlayer, SpriteSheet và Tấn Công Kẻ Thù 66"/></a></p>
<p>Còn cái mask thì <strong>Hitbox Player -&gt; Hurtbox Enemy</strong></p>
<p><strong>HurtBoxPlayer</strong> thì để layer là <strong>Hurtbox Player</strong> ko set mask vì hurt box không va chạm với cái gì cả nhiệm vụ của nó chỉ là nhận chứ không làm</p>
<p>Rồi đến Quái chúng ta cũng làm tương tự nhưng layer là enemy</p>
<p><a target="_blank" href="https://en.anonyviet.com/next-link?url=https%3A%2F%2Fanonyviet.com%2Fwp-content%2Fuploads%2F2020%2F06%2Fimage027.png" rel="noopener" class="local-link"><img decoding="async" loading="lazy" class="aligncenter size-full wp-image-20040" src="https://anonyviet.com/wp-content/uploads/2020/06/image027.png" alt="[Lập Trình Game] Bài 13: AnimationPlayer, SpriteSheet và Tấn Công Kẻ Thù 63" width="744" height="326" srcset="https://anonyviet.com/wp-content/uploads/2020/06/image027.png 744w, https://anonyviet.com/wp-content/uploads/2020/06/image027-300x131.png 300w" sizes="auto, (max-width: 744px) 100vw, 744px" title="[Lập Trình Game] Bài 13: AnimationPlayer, SpriteSheet và Tấn Công Kẻ Thù 67"/></a></p>
<p>Ở enemy các bạn <strong>set collion shape hit box &amp; hurt box</strong> giống <strong>CollsionShape</strong> của nó đều đc</p>
<p>Tiếp đến sẽ set collsion shape hitbox cho Player:</p>
<p>Các bạn nhấn <strong>Add track &gt; Poperty track &gt; Hitbox &gt; CollisionShape2D &gt; Disabled</strong></p>
<p><a target="_blank" href="https://en.anonyviet.com/next-link?url=https%3A%2F%2Fanonyviet.com%2Fwp-content%2Fuploads%2F2020%2F06%2Fimage028.png" rel="noopener" class="local-link"><img decoding="async" loading="lazy" class="aligncenter size-full wp-image-20041" src="https://anonyviet.com/wp-content/uploads/2020/06/image028.png" alt="[Lập Trình Game] Bài 13: AnimationPlayer, SpriteSheet và Tấn Công Kẻ Thù 64" width="320" height="187" srcset="https://anonyviet.com/wp-content/uploads/2020/06/image028.png 320w, https://anonyviet.com/wp-content/uploads/2020/06/image028-300x175.png 300w" sizes="auto, (max-width: 320px) 100vw, 320px" title="[Lập Trình Game] Bài 13: AnimationPlayer, SpriteSheet và Tấn Công Kẻ Thù 68"/></a></p>
<p><a target="_blank" href="https://en.anonyviet.com/next-link?url=https%3A%2F%2Fanonyviet.com%2Fwp-content%2Fuploads%2F2020%2F06%2Fimage029.png" rel="noopener" class="local-link"><img decoding="async" loading="lazy" class="aligncenter size-full wp-image-20042" src="https://anonyviet.com/wp-content/uploads/2020/06/image029.png" alt="[Lập Trình Game] Bài 13: AnimationPlayer, SpriteSheet và Tấn Công Kẻ Thù 65" width="275" height="160" title="[Lập Trình Game] Bài 13: AnimationPlayer, SpriteSheet và Tấn Công Kẻ Thù 69"/></a></p>
<p>Disabled là chức năng vô hiệu hóa collsion ở đây chúng ta sẽ dùng chức năng này để tạo hitbox cho player.</p>
<p>À ở đây Keys frame của mình từ 20-24 và nút chém thì <strong>Flip H = True</strong> nhé.</p>
<p>Các bạn sẽ căn cho mình khi nào chém thì collsionshape sẽ kích hoạt và khi nào không kích hoạt nhé</p>
<div class="jeg_video_container jeg_video_content"><iframe title="Hướng dẫn lập trình game Godot Engine" width="500" height="375" src="https://www.youtube.com/embed/vL2RlovWHNU?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe></div>
<p>Vậy là đã xong phần <strong>hitbox &amp; hurtbox</strong> tiếp đến là code</p>
<p>Ở hitbox tạo cho mình 1 cái script là <strong>HitboxPlayer</strong></p>
<p><a target="_blank" href="https://en.anonyviet.com/next-link?url=https%3A%2F%2Fanonyviet.com%2Fwp-content%2Fuploads%2F2020%2F06%2Fimage030.png" rel="noopener" class="local-link"><img decoding="async" loading="lazy" class="aligncenter size-full wp-image-20043" src="https://anonyviet.com/wp-content/uploads/2020/06/image030.png" alt="[Lập Trình Game] Bài 13: AnimationPlayer, SpriteSheet và Tấn Công Kẻ Thù 66" width="941" height="364" srcset="https://anonyviet.com/wp-content/uploads/2020/06/image030.png 941w, https://anonyviet.com/wp-content/uploads/2020/06/image030-300x116.png 300w, https://anonyviet.com/wp-content/uploads/2020/06/image030-768x297.png 768w, https://anonyviet.com/wp-content/uploads/2020/06/image030-750x290.png 750w" sizes="auto, (max-width: 941px) 100vw, 941px" title="[Lập Trình Game] Bài 13: AnimationPlayer, SpriteSheet và Tấn Công Kẻ Thù 70"/></a></p>
<p>Ở đây chúng ta sẽ code phần biến là export damage để đưa giá trị ra bên ngoài <strong>inspector</strong> cho dễ edit ~</p>
<p><code>export (int) var damage = 10</code></p>
<p>Tiếp đến chúng ta sẽ kết nối tín hiệu cho nó để biết rằng nó có va chạm hay không còn cái mask/layer là để cái này va chạm với cái kia,</p>
<p>Ở đây chúng ta sẽ xài area enterd thay vì body bởi vì <strong>hitbox</strong> sẽ và chạm với <strong>hurtbox</strong> và cả 2 đều là <strong>area2d</strong> nên sẽ xài <strong>area enterd</strong>.</p>
<p>Ở phần code chúng ta sẽ code để nhận biết kẻ thù va chạm với chúng ta và gây sát thương cho nó.</p>
<p>Đến phần sence của con quái ở cái hurtbox các bạn kết nối tín hiệu là area enter để nhận biết hitbox của player va chạm với nó kết nối vào kinematicbody ý</p>
<p>Ở phần trước mình đã hướng dẫn các bạn tạo máu cho quái rồi.</p>
<p>Tiếp đến phần hàm mới kết nối gõ:</p>
<p><a target="_blank" href="https://en.anonyviet.com/next-link?url=https%3A%2F%2Fanonyviet.com%2Fwp-content%2Fuploads%2F2020%2F06%2Fimage031.png" rel="noopener" class="local-link"><img decoding="async" loading="lazy" class="aligncenter size-full wp-image-20044" src="https://anonyviet.com/wp-content/uploads/2020/06/image031.png" alt="[Lập Trình Game] Bài 13: AnimationPlayer, SpriteSheet và Tấn Công Kẻ Thù 67" width="423" height="139" srcset="https://anonyviet.com/wp-content/uploads/2020/06/image031.png 423w, https://anonyviet.com/wp-content/uploads/2020/06/image031-300x99.png 300w" sizes="auto, (max-width: 423px) 100vw, 423px" title="[Lập Trình Game] Bài 13: AnimationPlayer, SpriteSheet và Tấn Công Kẻ Thù 71"/></a></p>
<p><strong>     health -= area.damage</strong></p>
<p><strong>     if health &lt;= 0:</strong></p>
<p><strong>               queue_free()</strong></p>
<p>health = máu và -= area.damage là gọi cái damage của player sẽ trừ đi máu của Quái dòng if health &lt;= 0 nghĩa là nếu máu &lt;= 0 thì biến mất queue_free là lệnh giúp bạn làm điều đó ngoài ra còn 1 số lệnh giống queue_free() là:</p>
<ul>
<li>queue_free()</li>
<li>free()</li>
<li>remove_child</li>
</ul>
<p>Mỗi cái đều có cách dùng riêng và không phải cái nào cũng giống nhau đâu nhé ^^</p>
<p>Tiếp đến là con Quái tấn công. Các bạn tạo damage cho nó rồi sau đó qua sence player</p>
<p>Ở cái hurtbox thì các bạn cũng connect như ở Enemy Sence</p>
<p>À ở cái hitbox á, các bạn cũng có thể xài chung 1 script nha cho cả 2 cái đều được nó sẽ không thay đổi giá trị nếu bạn thay đổi giá trị ở ngoài bảng Inspector, thêm script vào hitbox enemy nha vì enemy chưa có damage ở cái hitbox.</p>
<p>Tiếp đến code cái hàm mới connect</p>
<p><a target="_blank" href="https://en.anonyviet.com/next-link?url=https%3A%2F%2Fanonyviet.com%2Fwp-content%2Fuploads%2F2020%2F06%2Fimage032.png" rel="noopener" class="local-link"><img decoding="async" loading="lazy" class="aligncenter size-full wp-image-20045" src="https://anonyviet.com/wp-content/uploads/2020/06/image032.png" alt="[Lập Trình Game] Bài 13: AnimationPlayer, SpriteSheet và Tấn Công Kẻ Thù 68" width="718" height="151" srcset="https://anonyviet.com/wp-content/uploads/2020/06/image032.png 718w, https://anonyviet.com/wp-content/uploads/2020/06/image032-300x63.png 300w" sizes="auto, (max-width: 718px) 100vw, 718px" title="[Lập Trình Game] Bài 13: AnimationPlayer, SpriteSheet và Tấn Công Kẻ Thù 72"/></a></p>
<p><code>health -= area.damage</code></p>
<p><code>if health &lt;= 0:</code></p>
<p><code>get_tree().change_scene("res://tscn/title screen/TitleMenu.tscn")</code></p>
<p>ở đây cũng như vừa nãy  nhưng khác ở cái là get_tree().change_sence() ở cái Player chúng ta sẽ không dùng queue_free() hay cái gì mà:</p>
<ol>
<li>Đưa về màn hình chính sau khi chết</li>
<li>Làm 1 cái màn hình end game sau đó tạo 2 nút vè màn hình chính hoặc chơi lại</li>
</ol>
<p>Ở đây mình sẽ làm tạm 1 cái label để xem cái máu là bao nhiêu.</p>
<p>Tạo node mới &gt; Canvas layer &gt; Label</p>
<p>Canvaslayer là nút giúp bạn hiện thị mấy cái như label trên màn hình, theo màn hình ý</p>
<p>Label thì là cái label :v</p>
<p>Rồi vô code tạo hàm func _process(delta):</p>
<p>Rồi dùng $ gọi nút $CanvasLayer/Label.set_text() .</p>
<p>Set_text() dùng để set ký tự cho label hoặc mấy cái tương tự. Nếu bạn set_text(health) thì nó sẽ báo lỗi là không thể convert int to string nghĩa là không thể chuyển đổi giá trị interger sang string.</p>
<p>Để hiển thị máu các bạn làm như sau:</p>
<p>$CanvasLayer/Label.set_text(str(health))</p>
<p>Str() giúp bạn đổi giá trị số sang chữ.</p>
<p><a target="_blank" href="https://en.anonyviet.com/next-link?url=https%3A%2F%2Fanonyviet.com%2Fwp-content%2Fuploads%2F2020%2F06%2Fimage033.png" rel="noopener" class="local-link"><img decoding="async" loading="lazy" class="aligncenter size-full wp-image-20046" src="https://anonyviet.com/wp-content/uploads/2020/06/image033.png" alt="[Lập Trình Game] Bài 13: AnimationPlayer, SpriteSheet và Tấn Công Kẻ Thù 69" width="608" height="241" srcset="https://anonyviet.com/wp-content/uploads/2020/06/image033.png 608w, https://anonyviet.com/wp-content/uploads/2020/06/image033-300x119.png 300w" sizes="auto, (max-width: 608px) 100vw, 608px" title="[Lập Trình Game] Bài 13: AnimationPlayer, SpriteSheet và Tấn Công Kẻ Thù 73"/></a></p>
<p><a target="_blank" href="https://en.anonyviet.com/next-link?url=https%3A%2F%2Fanonyviet.com%2Fwp-content%2Fuploads%2F2020%2F06%2Fimage034.png" rel="noopener" class="local-link"><img decoding="async" loading="lazy" class="aligncenter size-full wp-image-20047" src="https://anonyviet.com/wp-content/uploads/2020/06/image034.png" alt="[Lập Trình Game] Bài 13: AnimationPlayer, SpriteSheet và Tấn Công Kẻ Thù 70" width="584" height="353" srcset="https://anonyviet.com/wp-content/uploads/2020/06/image034.png 584w, https://anonyviet.com/wp-content/uploads/2020/06/image034-300x181.png 300w" sizes="auto, (max-width: 584px) 100vw, 584px" title="[Lập Trình Game] Bài 13: AnimationPlayer, SpriteSheet và Tấn Công Kẻ Thù 74"/></a></p>
<p style="text-align: right;"><strong>Vậy đến đây là hết rồi hẹn gặp lại tỏng bài tiếp theo nhé!</strong></p>
<div class="kk-star-ratings kksr-auto kksr-align-right kksr-valign-bottom" data-payload="{&quot;align&quot;:&quot;right&quot;,&quot;id&quot;:&quot;20013&quot;,&quot;slug&quot;:&quot;default&quot;,&quot;valign&quot;:&quot;bottom&quot;,&quot;ignore&quot;:&quot;&quot;,&quot;reference&quot;:&quot;auto&quot;,&quot;class&quot;:&quot;&quot;,&quot;count&quot;:&quot;100&quot;,&quot;legendonly&quot;:&quot;&quot;,&quot;readonly&quot;:&quot;&quot;,&quot;score&quot;:&quot;5&quot;,&quot;starsonly&quot;:&quot;&quot;,&quot;best&quot;:&quot;5&quot;,&quot;gap&quot;:&quot;5&quot;,&quot;greet&quot;:&quot;\u0110\u00e1nh gi\u00e1 b\u00e0i vi\u1ebft post&quot;,&quot;legend&quot;:&quot;B\u00e0i vi\u1ebft \u0111\u1ea1t: 5\/5 - (100 b\u00ecnh ch\u1ecdn)&quot;,&quot;size&quot;:&quot;24&quot;,&quot;width&quot;:&quot;142.5&quot;,&quot;_legend&quot;:&quot;B\u00e0i vi\u1ebft \u0111\u1ea1t: {score}\/{best} - ({count} {votes})&quot;,&quot;font_factor&quot;:&quot;1.25&quot;}">
<p>
            Bài viết đạt: 5/5 &#8211; (100 bình chọn)    </p>
</p></div>
</div>
]]></content:encoded>
					
					<wfw:commentRss>https://en.anonyviet.com/lap-trinh-game-bai-13-animationplayer-spritesheet-va-tan-cong-ke-thu/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<media:content url="https://anonyviet.com/wp-content/uploads/2020/06/image026.png" medium="image"></media:content>
            	</item>
	</channel>
</rss>
