irpg Community
[XP/VX/VXA] วิธีทำระบบ Action เบื้องต้น [ตอนที่ 1] - Printable Version

+- irpg Community (https://irpg.in.th)
+-- Forum: irpg Fabella RPG Maker Academia (https://irpg.in.th/forum-4.html)
+--- Forum: The Great RPG Maker Library (https://irpg.in.th/forum-5.html)
+--- Thread: [XP/VX/VXA] วิธีทำระบบ Action เบื้องต้น [ตอนที่ 1] (/thread-174.html)



[XP/VX/VXA] วิธีทำระบบ Action เบื้องต้น [ตอนที่ 1] - sharifyasan - 07-03-2012

ก่อนอื่นขอออกตัวก่อนครับว่าผมไม่ได้เก่งการด้นอีเว้นสดอะไรมากเท่าไหร่...กระทู้สอนเทคนิคนี้ทำขึ้นมาจากความรู้เท่าที่ผมมีเท่านั้น สามารถนำไปใช้ประยุกต์ต่อได้อีกครับ

สำหรับ how to นี้สามารถใช้ได้กับ Rpg Maker แทบทุกเวอร์ชั่นน่ะครับ (xp, vx ,vxa บลาๆ) โดยมีหลักการการเขียนที่ค่อนข้างคล้ายกันครับ เอ้า! ไม่รอช้าไปดูกันเลยครับ!
สำหรับวันนี้ผมจะมาสอนการเขียนระบบ Action หรือที่เข้าใจกันสั้นๆว่า "ระบบเดินยิง" นั้นเองครับ...โดยวันนี้จะขอสอนการทำให้ยิงกระสุนเองให้ได้ก่อนครับ ผมขอใช้โปรแกรม Rpg Maker Vx Ace เป็นตัวอย่างในการเขียนละกันน่ะครับ.

*อนึ่งคือการเขียนระบบแบบนี้ต้องมีความรู้พื้นฐานโปรแกรม Rpg Maker ด้วยน่ะครับ เช่น พวกตัวแปร (Variables) สวิตช์ (Switches) และคำสั่งต่างๆอื่นๆอีกด้วยเป็นต้น
[Image: 140202.1c9f80c1.o.png]
ขั้นแรกเราต้องเตรียม "ตัวแปร" และ "สวิตช์" ดังนี้ครับ...เดี๋ยวขออธิบายทีละบรรทัดก่อนเน้อ~
1. กำหนดตัวแปรตัวหนึ่งให้ค่อยเก็บค่าพิกัดแกรน x ของตัวละครฮีโร่ (ของผู้เล่น)
2. เหมือนกับข้อที่ 1 เพียงแต่เก็บค่าในแกรน y แทนครับ
3. กำหนดสวิตช์ใช้สำหรับ เปิด-ปิด การยิงของเราครับ
โดย 3 คำสั่งนี้ให้สร้างไว้ในส่วนของ "เหตุการณ์ทั่วไป" แล้วเปิด "เงื่อนไขการณ์เริ่มเหตุการณ์" ให้เป็น "พร้อมเนื้อเรื่อง" น่ะครับ
*เมื่อเลือกพร้อมเนื้อเรื่องแล้วแนะนำให้ set switch ที่ใช้เริ่มเหตุการณ์เป็นไอดีแรกสุดครับเพื่อความสะดวกต่างๆ

[Image: 140203.c3f37bd7.o.png]
ต่อมาเราไปสร้างอีเว้น (Event) กระสุนกันครับโดยภาพ Character ของอีเว้นเราจะให้เป็นคน, สัตว์, สิ่งของอะไรก็ได้ครับ แต่ส่วนใหญ่หลายๆคนมักใช้เป็น "กระสุน" ไปเลยแต่สำหรับฮาวทูนี้ผมขอใช้เป็นก้อนหินละกันครับ ฮ่าๆ อธิบายทีละบรรทัดน่ะครับ

Option Event:
1. ย้ำเท้าตลอดเวลา อันนี้จริงๆไม่ต้องติ๊กก็ได้ครับ แต่บางคนใช้กระสุนแบบมีควันด้วย...ถ้าอยากให้รันอนิเมชั่นกระสุนติดควันตอนยิงด้วยก็สามารถติ๊กได้ครับ
2. เดินผ่านได้ ติ๊กอันนี้เพื่อให้สามารถยิงผ่านตัวละครศัตรูที่เรายิงใส่เพื่อเช็คหรือคำนวนการรันคำสั่งลดเลือดของศัตรูอีกทีครับ (บางทีสามารถยิงทะลุบ้านได้ด้วย ซึ่งวิธีแก้เดี๋ยวจะขอพูดในตอนหน้าครับ)

การเริ่มเหตุการณ์:
1. พร้อมเนื้อเรื่อง เพื่อสามารถรันคำรันต่างๆในหน้าของอีเว้นนั้นๆได้ทันที (กรณีที่มีคำสั่งให้รันน่ะครับ)

รูปแบบการเคลื่อนที่:
1. ความเร็ว ปรับให้เร็วที่สุดไปเลยครับ เพราะกระสุนเวลายิงปกติมันก็วิ่งเร็วอยู่แล้วถ้าไม่ใช่กระสุนฟองน้ำที่ยิงแล้ววิ่งช้าๆ
2. ความถี่ ปรับให้ถี่ที่สุดไปเลยเช่นกันครับ
3. รูปแบบ ให้เลือก "กำหนดเอง" เพราะว่าเดี๋ยวเราจะต้องไปเซตระยะทางที่กระสุนจะวิ่งไปด้วยครับ ว่าจะให้กระสุนเรายิงไปไกลแค่ไหน
*ควรจะสร้างอีเว้นกระสุนเ็ป็นอีเว้นแรกหรือให้มีเลขไอดีเป็น 001 เสมอของทุกๆแมพที่สามารถยิงได้น่ะครับ

[Image: 140204.86bb92fa.o.png]
โอเคครับทีนี้เรามาเซตระยะทางที่กระสุนจะวิ่งไปกันดีกว่าครับ โดยให้คลิกคำสั่ง "เดินไปข้างหน้า" (ของ vx ace จะเป็นก้าวหน้าน่ะครับ) โดยเราจะคลิกกี่ครั้งครับได้ครับเพราะ "คลิก 1 ครั้ง = กระสุนวิ่งไป 1 ช่องอีเว้น" ยกตัวอย่างในภาพนี้จะเซตไว้ให้กระสุนวิ่งไปได้ 10 ช่องครับ
และจากนั้นก็คลิกคำสั่ง "ปิดสวิตช์" โดยให้ปิดสวิตช์ไอดีหมายเลขที่เราเซตไว้ตอนแรกน่ะครับ ในตัวอย่างนี้จะเป็นไอดีหมายเลข 5 นั้นเอง
1. วนคำสั่งนี้ไปเรื่อยๆ เพื่อที่จะได้รันให้มัน "เดินไปข้างหน้า" ได้อย่างต่อเนื่องครับ
2. ข้ามจุดที่ไปไม่ได้ จริงๆอันนี้จะติ๊กหรือไม่ติ๊กไว้ก็ไม่ค่อยต่างกันครับ เพราะคำสั่งนี้มีไว้แค่ตรวจเช็คเมื่ออีเว้นนั้นๆเดินผ่าน tile ของ tileset ที่ไม่สามารถผ่านได้เท่านั้น...แต่กรณีนี้เราเซตให้อีเว้นกระสุนผ่านได้แต่แรกแล้ว

[Image: 140205.9c790e6c.o.png]
จากนั้นให้เราไปเปิดสวิตช์ดังกล่าวให้เปิดในส่วน "เงื่อนไขการเริ่มเหตุการณ์" ด้วยน่ะครับ ทีนี้เราก็จะได้อีเว้นกระสุนก้อนหินยักษ์ของเราเสร็จแล้ว 1 อีเว้นครับผม !~

หลังจากนี้จะเข้าสู่การเขียนคำสั่ง "การยิง" แ้ล้วน่ะครับ
[Image: 140206.ec416b5e.o.png]
โดยให้เราไปสร้างอีเว้นในส่วนของ "เหตุการณ์ทั่วไป" แล้วตั้งชื่ออีเว้นเป็นอะไรก็ได้ เช่น ฮีโร่ทำการยิง, ฮีโรโจมตี บลาๆแต่ในฮาวทูนี้ผมขอตั้งเป็น hero.fire ละกันครับ
และเซตเงื่อนไขเหตุการณ์เป็น "พร้อมเนื้อเรื่อง" และสวิตช์ที่ใช้เริ่มเหตุการณ์ด้วยครับ
อธิบายทีละบรรทัด
1. ตรวจเช็คเงื่อนไข ทำการเช็คเงื่อนไขเมื่อกดปุ่มยิงโดยเราสามารถเซตปุ่มอะไรก็ได้ครับที่จะยิง ในฮาวทูนี้ผมเซตไว้คือปุ่ม z หรือเมื่อเล่นจริงก็คือกดปุ่ม d นั้นเองครับ
2. เล่นเสียงเอฟเฟค สั่งรันคำสั่งเพื่อเล่นเสียงโจมตีต่างๆ เช่น เล่นเสียงยิงปืน บลาๆ
3. กำหนดตำแหน่งเหตุการณ์ คำสั่งนี้เราจะทำการย้ายอีเว้น "กระสุน" โดยให้ย้ายมาหา "ตัวแปร" ที่เราเซตค่าแกรน x และ y ไว้ในตอนแรกและเซต "ทิศทางการหันหน้า" ให้เป็นทิศเดิมน่ะครับผม ดูภาพประกอบได้ด้านล่างครับ
[Image: 140207.c6b4c255.o.png]

[Image: 140208.9059f285.o.png]
จากนั้นเราก็มาเซตทิศทางที่กระสุนจะวิ่งไปกันดีกว่าครับ ในฮาวทูนี้ตัวละครจะหันหน้าได้ 4 ทิศก็คือ บน ล่าง ซ้าย ขวา นั้นเองครับ...อธิบายทีละบรรทัด
1. ตรวจเช็คเงื่อนไข เช็คเงื่อนไขการหันหน้าของตัวละครผู้เล่นครับว่าจะหันหน้า ลง ขึ้นหรือซ้าย ขวา ก่อนนั้นเอง
2. เคลื่อนย้ายเหตุการณ์ ให้เลือกอีเว้นที่ต้องการเคลื่อนย้ายเป็นอีเว้น "กระสุน" แล้วคลิกให้เคลื่อนที่ 1 ช่องตามทิศทางที่ตัวละครเราหันหน้าน่ะครับ
3. ควบคุมสวิตช์ เปิดสวิตช์ที่เราใช้ในการยิงที่เคยเซตไว้ในหน้าของอีเว้นกระุสุนครับ
4. รอเวลา ตรงส่วนนี้เราจะรันคำสั่งรอเวลาเพื่อให้กระสุนมีระยะทางการวิ่งไปในระยะทางที่เรากำหนดไว้ครับ
5. ควบคุมสวิตช์ จากนั้นก็ปิดสวิตช์ที่เปิดไว้ในข้อที่ 3. ครับผม
จากนั้นก็ทำอย่างนี้ให้ครบทุกทิศทางทั้งหมด 4 ทิศน่ะครับ ดูภาพประกอบได้
[Image: 140209.18538583.o.png]

เย้! ในที่สุดเราก็เขียนเสร็จเรียบร้อยหมดแล้วครับ...ทีนี้ก็สามารถกดรันเกมเพื่อทดสอบได้เลยครับ ;w;b สำหรับตอนหน้าจะมาสอนวิธีเขียนเมื่อเรายิงศัตรูแล้วเลือดลดกันน่ะครับ
ก็หวังว่าฮาวทูตอนที่ 1 นี้จะมีประโยชน์กับสมาชิกท่านใหม่และท่านเก่าเก๋าใกล้ดองกันทุกคนน่ะครับ...สำหรับใครมีคำถามอะไรสงสัยถามได้น่ะครับ :")

***ห้ามคัดลอกหรือนำไปเผยแพร่ที่อื่นก่อนได้รับอนุญาตจาก sharifyasan หรือ Jacobo ก่อนเป็นอันขาด***
Last Update : 3/07/2012


RE: วิธีทำระบบ Action เบื้องต้น [ตอนที่ 1] - LuZi - 07-03-2012

เชด ชารีฟขยันมั่ก!!!

* LuZi กอดรัดฟัดเหวี่ยง


RE: วิธีทำระบบ Action เบื้องต้น [ตอนที่ 1] - Shinryu - 07-03-2012

2. ข้ามจุดที่ไปไม่ได้ ถ้าติ๊กที่นี้ ที่ตัวอีเวทน์จะไม่จำเป็นต้องปิดอีกรอบทุกอัน
จะประหยัดบรรทัดไปได้อีก 8 บรรทัด (ปิดสวิทซ์4 รอเวลา4)

เพราะที่ตัวเหตุการณ์เมื่อเดินครบก็ใส่ปิดสวิทซ์ไว้อยู่แล้ว ขอแค่เดินครบตามที่กำหนดก็ปิดเองอยู่แล้ว
ถ้าใส่รอเวลาแล้วปิด บางที่มันอาจวิ่งไม่ถึงกำหนดที่ต้องการแล้วกระสุนหายก่อนได้


RE: วิธีทำระบบ Action เบื้องต้น [ตอนที่ 1] - OP_Jum_RPG - 07-03-2012

1. รูปแรก
จะเปิดสวิตช์เบอร์ 5 ไปเพื่อ?
เท่าที่ดูรายการคำสั่ง เป็นสวิตช์คุมให้กระสุนออกมา
มันก็ออกตลอดเวลาสิ

2. ต่อจากของท่านชินริว
ผมใส่ทั้งสองแบบนะ เพื่อกันบั๊คไปในตัว
การเช็คที่กระสุน ให้ "ข้ามในจุดที่ไปไม่ได้" จำเป็นต้องใส่ เพราะมันคือตัวบั๊คเลยล่ะ
จริงอยู่ที่ มันผ่าน Tileset ได้
แต่ลืมอะไรไปเรื่องนึงหรือเปล่า มันชนขอบแผนที่แล้วค้างนะ

3. อีเวนท์เช็คการกดโจมตี
เช็คว่าสวิตช์คุมกระสุนปิดอยู่ด้วยน่อ
ไม่งั้นกดรัวๆ กระสุนไม่ต้องไปไหนกันพอดี โดนดึงเข้าหาเราตลอด


RE: วิธีทำระบบ Action เบื้องต้น [ตอนที่ 1] - sharifyasan - 07-03-2012

@OP_Jum_RPG
1. สวิตช์นี้เป็นเหมือนชนิดปืนที่เราใช้ครับ กรณีที่กระสุนมีชนิดแตกต่างออกไป เช่น ใช้ปืนไรเฟิลก็เปิด hero.fire.rifle เพื่อเปิดหน้าอีเว้นกระสุนไรเฟิล, ใช้ปืนไฟก็เปิด hero.fire.flame เพื่อเปิดหน้าอีเว้นกระสุนไฟ ประมาณนี้น่ะครับ (งงมั้ยหว่า)

2. อันนี้ผมคิดเหมือนพี่จุมกับแต่แก้ปัญหาค้างที่ชอบแผนที่เช่นกันครับ แต่เหมือนเคยเจอสคริปที่มันจะทะลุไปได้แฮะ...แต่ฮาวทูนี้แค่เบื้องต้นน่ะครับเลยยังไม่อยากเอาสคริปมายุ่งน่ะครับ

3. วิธีนั้นผมลืมไปด้วยจริงๆครับ...แต่ผมลองตามที่เขียนแล้วกระสุนมันก็ไม่ดึงเข้าหาตัวเราตลอดนะครับ ;w;


RE: วิธีทำระบบ Action เบื้องต้น [ตอนที่ 1] - OP_Jum_RPG - 07-03-2012

1. รู้สึกมันจะขัดกันเองนะนั่น
ข้างบน 5 = roger fire
ข้างล่าง 5 = hero fire
เอาไงแน่

ถ้าตามที่บอกมา ตรงนั้นไม่ควรจะเปิดสวิตช์อะไรทั้งนั้น
ไม่งั้นตอนเปลี่ยนปืน มั่วแน่ๆ ถ้าสวิตช์มันเปิดอยู่สองตัว

2. ไม่จำเป็นต้องใช้สคริปต์หรอก ถ้ามันทะลุไม่ได้ก็ทำให้มันหายไปเลยสิ
พอสุดคำสั่งเคลื่อนที่ กระสุนมันก็ปิดสวิตช์ตัวเองอยู่แล้ว
ถ้าปล่อยมันค้างไว้ มันจะยิงไม่ออกไปพักนึงนะ

3. รู้ละทำไมมันไม่กลับ
เพราะเหตุการณ์มันยังไม่จบ เลยไม่ย้อนกลับไปเช้คข้างบนใหม่
เพราะฉะนั้น ไอ้ที่รอเวลาแล้วปิดสวิตช์ เอาออกไปเลยจะดีที่สุด

ไม่งั้น ถ้ากระสุนหายไปด้วยเงื่อนไขอื่น มันจะยิงไม่ออกไปแป๊บนึง เพราะเหตุการณ์นี้ยังไม่สุด


RE: วิธีทำระบบ Action เบื้องต้น [ตอนที่ 1] - sharifyasan - 07-03-2012

@OP_Jum_RPG
1. hero หรือ roger ก็ได้แหละครับ xD... เพราะไอดี 5 เดียวกันก็พอ Tongue


RE: วิธีทำระบบ Action เบื้องต้น [ตอนที่ 1] - OP_Jum_RPG - 07-03-2012

ก็ถึงได้ถามอยู่เนี่ย ว่าจะไปเปิดมันทำไม
ข้างล่างมี เดี๋ยวปิดเดี๋ยวเปิด
แต่ข้างบนสั่งเปิดตลอดเวลา

อันนี้แปะให้ดู
[Image: attackcontrol.jpg]


RE: วิธีทำระบบ Action เบื้องต้น [ตอนที่ 1] - Mysticphoenix - 07-03-2012

ต้องเช็ค "ข้ามการเคลื่อนที่ในจุดที่ไปไม่ได้" ด้วยนะ ไม่งั้นเกมค้างนะ เหยาหมิงสยอง

เออ แล้วอย่าลืมอัพ DEMO เน้อ เขียน tutorial อย่างนี้ต้องมี demo ให้ดูด้วย

เห็นว่ามี หลาย part งั้นรอทำ DEMO ตอนถึง part สุดท้ายก็ได้