<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title><![CDATA[irpg Community - Scripting Academy]]></title>
		<link>https://irpg.in.th/</link>
		<description><![CDATA[irpg Community - https://irpg.in.th]]></description>
		<pubDate>Sat, 02 May 2026 14:18:58 +0000</pubDate>
		<generator>MyBB</generator>
		<item>
			<title><![CDATA[สอนเขียนสคริปต์อย่างง่ายๆ #1 If Else]]></title>
			<link>https://irpg.in.th/thread-2968.html</link>
			<pubDate>Sun, 16 Oct 2016 19:57:09 +0700</pubDate>
			<dc:creator><![CDATA[<a href="https://irpg.in.th/member.php?action=profile&uid=1276">slost</a>]]></dc:creator>
			<guid isPermaLink="false">https://irpg.in.th/thread-2968.html</guid>
			<description><![CDATA[<span style="text-decoration: underline;" class="mycode_u"><span style="font-weight: bold;" class="mycode_b">สอนเขียนสคริปต์อย่างง่ายๆ #1 If Else</span></span><br />
<br />
วันนี้ผมจะมาสอนอะไรที่โคตรจะเบสิคของการเขียนสคริปต์เลยแหละ<br />
นั่นก็คือการใช้ If ถ้าท่านใช้เป็น ท่านจะเอาไปประยุกต์อะไรได้อีกมากมาย<br />
และแน่นอนไม่ใช่เฉพาะ GMS ทุกโปรแกรมเอาไปใช้ได้หมด (เพียงแต่การเขียนจะแตกต่างกันไป)<br />
<br />
เริ่มแรก ผมอยากจะให้ทุกคนเข้าใจหลักการทำงานก่อน<br />
<br />
If คือการตรวจสอบเงื่อนไขว่าเป็นจริงหรือไม่ และจะเกิดอะไรขึ้นถ้าหากมันจริง<br />
ยกตัวอย่างง่ายๆ เช่น ถ้าหิวจริง ก็ออกไปซื้อข้าวกิน ถ้าซื้อข้าวกิน ก็ต้องเสียเงิน เป็นต้น<br />
<br />
โครงสร้างของภาษา GML<br />
<br />
if เงื่อนไข<br />
{<br />
สิ่งที่จะกระทำ<br />
}<br />
<br />
เปรียบการซื้อข้าวเป็นภาษาโค้ด<br />
<br />
if ความหิว = 100<br />
{<br />
ออกไปซื้อข้าวกิน<br />
}<br />
<br />
แล้วถ้าหากไม่จริงล่ะ ? จะทำอย่างไรให้มันกระทำอีกอย่าง<br />
...นั่นก็คือการใช้ Else<br />
<br />
if เงื่อนไข<br />
{<br />
สิ่งที่จะกระทำ<br />
}<br />
else<br />
{<br />
สิ่งที่จะกระทำเมื่อไม่จริง<br />
}<br />
<br />
<br />
if ความหิว = 100<br />
{<br />
ออกไปซื้อข้าวกิน<br />
}<br />
else<br />
{<br />
ความหิวเพิ่มนาทีละ 1<br />
}<br />
<br />
เราสามารถใส่ if ซ้อนทับไปอีก เพื่อให้มันทำงานไปเรื่อยๆ<br />
<br />
if ความหิว = 100<br />
{<br />
	รู้สึกหิว<br />
if ออกไปซื้อข้าวกิน<br />
		{<br />
		เงิน -= 50<br />
		}<br />
}<br />
<br />
<span style="text-decoration: underline;" class="mycode_u">หมายเหตุ : ในการลด หรือเพิ่มตัวแปรนั้น เราไม่สามารถใช้ + , - ไปตรงๆได้ จำเป็นต้องใช้ = มาช่วยด้วย<br />
เช่นจะลดเงิน ไม่สามารถใช้ เงิน - 50 ได้ ต้องใช้ เงิน -= 50 หรือ เงิน =- 50 เท่านั้น</span><br />
<br />
<br />
ถ้าเคยใช้ RPG Maker คงจะเข้าใจแล้วใช่ไหมครับ มันก็คือคำสั่งตรวจเช็คเงื่อนไขนั่นเอง<br />
เพียงแต่การเขียนสคริปต์ มันจะไม่มีอะไรมาให้เรามาเลยครับ เราต้องมานั่งเขียนคำสั่งเอง<br />
ดังนั้น if จึงสำคัญมาก เราจะเขียนสคริปต์เดินได้อย่างไร ถ้าเราไม่ตรวจสอบว่ามันกดปุ่มเดินหรือไม่ ?<br />
<br />
กล่าวคือ สคริปต์ทำงานโดยการตรวจเช็คเงื่อนไขหลายๆอย่างนั่นเอง<br />
ถ้าเลเวลอัพ จะเพิ่มพลังโจมตี , ถ้าโดนกระสุน จะลดเลือด , ถ้าเลือดหมด จะเกมโอเวอร์<br />
<br />
พอเข้าใจแล้วใช่ไหมครับ ?<br />
<br />
<br />
คราวนี้มาถึงการใช้งานจริง ผมจะสอนถึงวิธีการเขียนสคริปต์บังคับตัวละครด้วยปุ่ม WASD<br />
ก่อนอื่นเรามาวางแผนกันก่อนครับ จะให้ตัวสคริปต์เป็นไงมั่ง<br />
<br />
if กดปุ่ม W<br />
{ เดินข้างบน }<br />
if กดปุ่ม A<br />
{ เดินข้างซ้าย }<br />
if กดปุ่ม S<br />
{ เดินลง }<br />
if กดปุ่ม D<br />
{ เดินข้างขวา }<br />
<br />
<span style="text-decoration: underline;" class="mycode_u">หมายเหตุ : เราสามารถย่อ { } ให้อยู่ในบรรทัดเดียวกันได้ เพื่อไม่ให้มันบรรทัดเยอะรกหูรกตา</span><br />
<br />
หลังจากออกแบบเสร็จแล้ว การจะเขียนสคริปต์ได้จริงนั้น เราจำเป็นจะต้องรู้โค้ดก่อน<br />
<br />
โค้ดตรวจสอบว่ากดปุ่มนั้นใช้ keyboard_check(key) ในวงเล็บให้ใส่ตัวคีย์ที่ต้องการ<br />
โค้ดคีย์ก็จะมีหลายแบบ แต่สำหรับปุ่มตัวอักษรนั้นให้ใช้ ord(‘key’)<br />
เช่น ตรวจสอบว่ากดปุ่ม W ให้ใช้ keyboard_check(ord(‘W’) )<br />
<br />
ทีนี้เราก็จะได้ขั้นหนึ่งแล้ว<br />
if keyboard_check(ord(‘W’) )<br />
{ เดินข้างบน }<br />
<br />
ส่วนจะให้มันเดินยังไง การเดินก็จะมีหลายแบบครับ เช่นเดินเป็นช่อง เดินเป็น บลาๆ<br />
แต่ทีผมจะใช้คือการสั่งให้ Object ย้ายตำแหน่งใน Room ครับ<br />
<br />
สิ่งสำคัญที่ต้องรู้ก็คือเรื่องของตำแหน่ง เพราะมันจำเป็นต้องใช้มากๆ<br />
<br />
x คือตำแหน่งแนวนอน<br />
y คือตำแหน่งแนวตั้ง<br />
x , y ก็คือค่าหนึ่ง ถ้าเราเขียนโค้ดใน Object นั้น มันก็จะหมายถึงตำแหน่งของ Object นั้น<br />
<br />
ปกติแล้วเมื่อเราเอา Object ไปวางไว้ใน Room ค่า x , y จะถูกตั้งให้เป็น 0 ณ ตำแหน่งนั้น<br />
ดังนั้นไม่ว่าจะอยู่ตรงส่วนไหน ค่า x , y ของ Object นั้น จะเท่ากับ 0 เสมอ<br />
และถ้าหากเราสั่งให้มันเพิ่มหรือลบ มันก็จะย้ายจากตำแหน่งนั้น<br />
<br />
มาตรงถึงส่วนการเคลื่อนที่<br />
ถ้าค่า x ติดลบ ตำแหน่งจะเคลื่อนไปด้านซ้าย ถ้าเพิ่มขึ้นจะไปด้านขวา<br />
ถ้าค่า y ติดลบ ตำแหน่งจะเคลื่อนลง ถ้าเพิ่มจะเลื่อนขึ้น<br />
<br />
if กดปุ่ม w<br />
{ ตำแหน่งแนวตั้งเพิ่ม 10 }<br />
<br />
if keyboard_check(ord(‘W’) )<br />
{ y += 10 }<br />
<br />
<br />
เท่านี้เราก็จะได้โค้ดเคลื่อนที่แล้วครับ เหลือแค่ทำให้ครบทั้งสี่ตัว<br />
ลองเอาไปทำดูนะครับ ผมเชือว่าทุกคนทำได้ แล้วพบกันใหม่คราวหน้าครับ<br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Credit : slost</span><br />
<br />
<a href="https://docs.google.com/document/d/1DpaQeWiwEAGnN539k1b1A4SFdLoKV1LMku6wo0wA0Tk/edit" target="_blank" rel="noopener" class="mycode_url">Code Codex รวบรวมโค้ด พร้อมคำอธิบายเป็นภาษาไทย</a>]]></description>
			<content:encoded><![CDATA[<span style="text-decoration: underline;" class="mycode_u"><span style="font-weight: bold;" class="mycode_b">สอนเขียนสคริปต์อย่างง่ายๆ #1 If Else</span></span><br />
<br />
วันนี้ผมจะมาสอนอะไรที่โคตรจะเบสิคของการเขียนสคริปต์เลยแหละ<br />
นั่นก็คือการใช้ If ถ้าท่านใช้เป็น ท่านจะเอาไปประยุกต์อะไรได้อีกมากมาย<br />
และแน่นอนไม่ใช่เฉพาะ GMS ทุกโปรแกรมเอาไปใช้ได้หมด (เพียงแต่การเขียนจะแตกต่างกันไป)<br />
<br />
เริ่มแรก ผมอยากจะให้ทุกคนเข้าใจหลักการทำงานก่อน<br />
<br />
If คือการตรวจสอบเงื่อนไขว่าเป็นจริงหรือไม่ และจะเกิดอะไรขึ้นถ้าหากมันจริง<br />
ยกตัวอย่างง่ายๆ เช่น ถ้าหิวจริง ก็ออกไปซื้อข้าวกิน ถ้าซื้อข้าวกิน ก็ต้องเสียเงิน เป็นต้น<br />
<br />
โครงสร้างของภาษา GML<br />
<br />
if เงื่อนไข<br />
{<br />
สิ่งที่จะกระทำ<br />
}<br />
<br />
เปรียบการซื้อข้าวเป็นภาษาโค้ด<br />
<br />
if ความหิว = 100<br />
{<br />
ออกไปซื้อข้าวกิน<br />
}<br />
<br />
แล้วถ้าหากไม่จริงล่ะ ? จะทำอย่างไรให้มันกระทำอีกอย่าง<br />
...นั่นก็คือการใช้ Else<br />
<br />
if เงื่อนไข<br />
{<br />
สิ่งที่จะกระทำ<br />
}<br />
else<br />
{<br />
สิ่งที่จะกระทำเมื่อไม่จริง<br />
}<br />
<br />
<br />
if ความหิว = 100<br />
{<br />
ออกไปซื้อข้าวกิน<br />
}<br />
else<br />
{<br />
ความหิวเพิ่มนาทีละ 1<br />
}<br />
<br />
เราสามารถใส่ if ซ้อนทับไปอีก เพื่อให้มันทำงานไปเรื่อยๆ<br />
<br />
if ความหิว = 100<br />
{<br />
	รู้สึกหิว<br />
if ออกไปซื้อข้าวกิน<br />
		{<br />
		เงิน -= 50<br />
		}<br />
}<br />
<br />
<span style="text-decoration: underline;" class="mycode_u">หมายเหตุ : ในการลด หรือเพิ่มตัวแปรนั้น เราไม่สามารถใช้ + , - ไปตรงๆได้ จำเป็นต้องใช้ = มาช่วยด้วย<br />
เช่นจะลดเงิน ไม่สามารถใช้ เงิน - 50 ได้ ต้องใช้ เงิน -= 50 หรือ เงิน =- 50 เท่านั้น</span><br />
<br />
<br />
ถ้าเคยใช้ RPG Maker คงจะเข้าใจแล้วใช่ไหมครับ มันก็คือคำสั่งตรวจเช็คเงื่อนไขนั่นเอง<br />
เพียงแต่การเขียนสคริปต์ มันจะไม่มีอะไรมาให้เรามาเลยครับ เราต้องมานั่งเขียนคำสั่งเอง<br />
ดังนั้น if จึงสำคัญมาก เราจะเขียนสคริปต์เดินได้อย่างไร ถ้าเราไม่ตรวจสอบว่ามันกดปุ่มเดินหรือไม่ ?<br />
<br />
กล่าวคือ สคริปต์ทำงานโดยการตรวจเช็คเงื่อนไขหลายๆอย่างนั่นเอง<br />
ถ้าเลเวลอัพ จะเพิ่มพลังโจมตี , ถ้าโดนกระสุน จะลดเลือด , ถ้าเลือดหมด จะเกมโอเวอร์<br />
<br />
พอเข้าใจแล้วใช่ไหมครับ ?<br />
<br />
<br />
คราวนี้มาถึงการใช้งานจริง ผมจะสอนถึงวิธีการเขียนสคริปต์บังคับตัวละครด้วยปุ่ม WASD<br />
ก่อนอื่นเรามาวางแผนกันก่อนครับ จะให้ตัวสคริปต์เป็นไงมั่ง<br />
<br />
if กดปุ่ม W<br />
{ เดินข้างบน }<br />
if กดปุ่ม A<br />
{ เดินข้างซ้าย }<br />
if กดปุ่ม S<br />
{ เดินลง }<br />
if กดปุ่ม D<br />
{ เดินข้างขวา }<br />
<br />
<span style="text-decoration: underline;" class="mycode_u">หมายเหตุ : เราสามารถย่อ { } ให้อยู่ในบรรทัดเดียวกันได้ เพื่อไม่ให้มันบรรทัดเยอะรกหูรกตา</span><br />
<br />
หลังจากออกแบบเสร็จแล้ว การจะเขียนสคริปต์ได้จริงนั้น เราจำเป็นจะต้องรู้โค้ดก่อน<br />
<br />
โค้ดตรวจสอบว่ากดปุ่มนั้นใช้ keyboard_check(key) ในวงเล็บให้ใส่ตัวคีย์ที่ต้องการ<br />
โค้ดคีย์ก็จะมีหลายแบบ แต่สำหรับปุ่มตัวอักษรนั้นให้ใช้ ord(‘key’)<br />
เช่น ตรวจสอบว่ากดปุ่ม W ให้ใช้ keyboard_check(ord(‘W’) )<br />
<br />
ทีนี้เราก็จะได้ขั้นหนึ่งแล้ว<br />
if keyboard_check(ord(‘W’) )<br />
{ เดินข้างบน }<br />
<br />
ส่วนจะให้มันเดินยังไง การเดินก็จะมีหลายแบบครับ เช่นเดินเป็นช่อง เดินเป็น บลาๆ<br />
แต่ทีผมจะใช้คือการสั่งให้ Object ย้ายตำแหน่งใน Room ครับ<br />
<br />
สิ่งสำคัญที่ต้องรู้ก็คือเรื่องของตำแหน่ง เพราะมันจำเป็นต้องใช้มากๆ<br />
<br />
x คือตำแหน่งแนวนอน<br />
y คือตำแหน่งแนวตั้ง<br />
x , y ก็คือค่าหนึ่ง ถ้าเราเขียนโค้ดใน Object นั้น มันก็จะหมายถึงตำแหน่งของ Object นั้น<br />
<br />
ปกติแล้วเมื่อเราเอา Object ไปวางไว้ใน Room ค่า x , y จะถูกตั้งให้เป็น 0 ณ ตำแหน่งนั้น<br />
ดังนั้นไม่ว่าจะอยู่ตรงส่วนไหน ค่า x , y ของ Object นั้น จะเท่ากับ 0 เสมอ<br />
และถ้าหากเราสั่งให้มันเพิ่มหรือลบ มันก็จะย้ายจากตำแหน่งนั้น<br />
<br />
มาตรงถึงส่วนการเคลื่อนที่<br />
ถ้าค่า x ติดลบ ตำแหน่งจะเคลื่อนไปด้านซ้าย ถ้าเพิ่มขึ้นจะไปด้านขวา<br />
ถ้าค่า y ติดลบ ตำแหน่งจะเคลื่อนลง ถ้าเพิ่มจะเลื่อนขึ้น<br />
<br />
if กดปุ่ม w<br />
{ ตำแหน่งแนวตั้งเพิ่ม 10 }<br />
<br />
if keyboard_check(ord(‘W’) )<br />
{ y += 10 }<br />
<br />
<br />
เท่านี้เราก็จะได้โค้ดเคลื่อนที่แล้วครับ เหลือแค่ทำให้ครบทั้งสี่ตัว<br />
ลองเอาไปทำดูนะครับ ผมเชือว่าทุกคนทำได้ แล้วพบกันใหม่คราวหน้าครับ<br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Credit : slost</span><br />
<br />
<a href="https://docs.google.com/document/d/1DpaQeWiwEAGnN539k1b1A4SFdLoKV1LMku6wo0wA0Tk/edit" target="_blank" rel="noopener" class="mycode_url">Code Codex รวบรวมโค้ด พร้อมคำอธิบายเป็นภาษาไทย</a>]]></content:encoded>
		</item>
	</channel>
</rss>