[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) และคำสั่งต่างๆอื่นๆอีกด้วยเป็นต้น ขั้นแรกเราต้องเตรียม "ตัวแปร" และ "สวิตช์" ดังนี้ครับ...เดี๋ยวขออธิบายทีละบรรทัดก่อนเน้อ~ 1. กำหนดตัวแปรตัวหนึ่งให้ค่อยเก็บค่าพิกัดแกรน x ของตัวละครฮีโร่ (ของผู้เล่น) 2. เหมือนกับข้อที่ 1 เพียงแต่เก็บค่าในแกรน y แทนครับ 3. กำหนดสวิตช์ใช้สำหรับ เปิด-ปิด การยิงของเราครับ โดย 3 คำสั่งนี้ให้สร้างไว้ในส่วนของ "เหตุการณ์ทั่วไป" แล้วเปิด "เงื่อนไขการณ์เริ่มเหตุการณ์" ให้เป็น "พร้อมเนื้อเรื่อง" น่ะครับ *เมื่อเลือกพร้อมเนื้อเรื่องแล้วแนะนำให้ set switch ที่ใช้เริ่มเหตุการณ์เป็นไอดีแรกสุดครับเพื่อความสะดวกต่างๆ ต่อมาเราไปสร้างอีเว้น (Event) กระสุนกันครับโดยภาพ Character ของอีเว้นเราจะให้เป็นคน, สัตว์, สิ่งของอะไรก็ได้ครับ แต่ส่วนใหญ่หลายๆคนมักใช้เป็น "กระสุน" ไปเลยแต่สำหรับฮาวทูนี้ผมขอใช้เป็นก้อนหินละกันครับ ฮ่าๆ อธิบายทีละบรรทัดน่ะครับ Option Event: 1. ย้ำเท้าตลอดเวลา อันนี้จริงๆไม่ต้องติ๊กก็ได้ครับ แต่บางคนใช้กระสุนแบบมีควันด้วย...ถ้าอยากให้รันอนิเมชั่นกระสุนติดควันตอนยิงด้วยก็สามารถติ๊กได้ครับ 2. เดินผ่านได้ ติ๊กอันนี้เพื่อให้สามารถยิงผ่านตัวละครศัตรูที่เรายิงใส่เพื่อเช็คหรือคำนวนการรันคำสั่งลดเลือดของศัตรูอีกทีครับ (บางทีสามารถยิงทะลุบ้านได้ด้วย ซึ่งวิธีแก้เดี๋ยวจะขอพูดในตอนหน้าครับ) การเริ่มเหตุการณ์: 1. พร้อมเนื้อเรื่อง เพื่อสามารถรันคำรันต่างๆในหน้าของอีเว้นนั้นๆได้ทันที (กรณีที่มีคำสั่งให้รันน่ะครับ) รูปแบบการเคลื่อนที่: 1. ความเร็ว ปรับให้เร็วที่สุดไปเลยครับ เพราะกระสุนเวลายิงปกติมันก็วิ่งเร็วอยู่แล้วถ้าไม่ใช่กระสุนฟองน้ำที่ยิงแล้ววิ่งช้าๆ 2. ความถี่ ปรับให้ถี่ที่สุดไปเลยเช่นกันครับ 3. รูปแบบ ให้เลือก "กำหนดเอง" เพราะว่าเดี๋ยวเราจะต้องไปเซตระยะทางที่กระสุนจะวิ่งไปด้วยครับ ว่าจะให้กระสุนเรายิงไปไกลแค่ไหน *ควรจะสร้างอีเว้นกระสุนเ็ป็นอีเว้นแรกหรือให้มีเลขไอดีเป็น 001 เสมอของทุกๆแมพที่สามารถยิงได้น่ะครับ โอเคครับทีนี้เรามาเซตระยะทางที่กระสุนจะวิ่งไปกันดีกว่าครับ โดยให้คลิกคำสั่ง "เดินไปข้างหน้า" (ของ vx ace จะเป็นก้าวหน้าน่ะครับ) โดยเราจะคลิกกี่ครั้งครับได้ครับเพราะ "คลิก 1 ครั้ง = กระสุนวิ่งไป 1 ช่องอีเว้น" ยกตัวอย่างในภาพนี้จะเซตไว้ให้กระสุนวิ่งไปได้ 10 ช่องครับ และจากนั้นก็คลิกคำสั่ง "ปิดสวิตช์" โดยให้ปิดสวิตช์ไอดีหมายเลขที่เราเซตไว้ตอนแรกน่ะครับ ในตัวอย่างนี้จะเป็นไอดีหมายเลข 5 นั้นเอง 1. วนคำสั่งนี้ไปเรื่อยๆ เพื่อที่จะได้รันให้มัน "เดินไปข้างหน้า" ได้อย่างต่อเนื่องครับ 2. ข้ามจุดที่ไปไม่ได้ จริงๆอันนี้จะติ๊กหรือไม่ติ๊กไว้ก็ไม่ค่อยต่างกันครับ เพราะคำสั่งนี้มีไว้แค่ตรวจเช็คเมื่ออีเว้นนั้นๆเดินผ่าน tile ของ tileset ที่ไม่สามารถผ่านได้เท่านั้น...แต่กรณีนี้เราเซตให้อีเว้นกระสุนผ่านได้แต่แรกแล้ว จากนั้นให้เราไปเปิดสวิตช์ดังกล่าวให้เปิดในส่วน "เงื่อนไขการเริ่มเหตุการณ์" ด้วยน่ะครับ ทีนี้เราก็จะได้อีเว้นกระสุนก้อนหินยักษ์ของเราเสร็จแล้ว 1 อีเว้นครับผม !~ หลังจากนี้จะเข้าสู่การเขียนคำสั่ง "การยิง" แ้ล้วน่ะครับ โดยให้เราไปสร้างอีเว้นในส่วนของ "เหตุการณ์ทั่วไป" แล้วตั้งชื่ออีเว้นเป็นอะไรก็ได้ เช่น ฮีโร่ทำการยิง, ฮีโรโจมตี บลาๆแต่ในฮาวทูนี้ผมขอตั้งเป็น hero.fire ละกันครับ และเซตเงื่อนไขเหตุการณ์เป็น "พร้อมเนื้อเรื่อง" และสวิตช์ที่ใช้เริ่มเหตุการณ์ด้วยครับ อธิบายทีละบรรทัด 1. ตรวจเช็คเงื่อนไข ทำการเช็คเงื่อนไขเมื่อกดปุ่มยิงโดยเราสามารถเซตปุ่มอะไรก็ได้ครับที่จะยิง ในฮาวทูนี้ผมเซตไว้คือปุ่ม z หรือเมื่อเล่นจริงก็คือกดปุ่ม d นั้นเองครับ 2. เล่นเสียงเอฟเฟค สั่งรันคำสั่งเพื่อเล่นเสียงโจมตีต่างๆ เช่น เล่นเสียงยิงปืน บลาๆ 3. กำหนดตำแหน่งเหตุการณ์ คำสั่งนี้เราจะทำการย้ายอีเว้น "กระสุน" โดยให้ย้ายมาหา "ตัวแปร" ที่เราเซตค่าแกรน x และ y ไว้ในตอนแรกและเซต "ทิศทางการหันหน้า" ให้เป็นทิศเดิมน่ะครับผม ดูภาพประกอบได้ด้านล่างครับ จากนั้นเราก็มาเซตทิศทางที่กระสุนจะวิ่งไปกันดีกว่าครับ ในฮาวทูนี้ตัวละครจะหันหน้าได้ 4 ทิศก็คือ บน ล่าง ซ้าย ขวา นั้นเองครับ...อธิบายทีละบรรทัด 1. ตรวจเช็คเงื่อนไข เช็คเงื่อนไขการหันหน้าของตัวละครผู้เล่นครับว่าจะหันหน้า ลง ขึ้นหรือซ้าย ขวา ก่อนนั้นเอง 2. เคลื่อนย้ายเหตุการณ์ ให้เลือกอีเว้นที่ต้องการเคลื่อนย้ายเป็นอีเว้น "กระสุน" แล้วคลิกให้เคลื่อนที่ 1 ช่องตามทิศทางที่ตัวละครเราหันหน้าน่ะครับ 3. ควบคุมสวิตช์ เปิดสวิตช์ที่เราใช้ในการยิงที่เคยเซตไว้ในหน้าของอีเว้นกระุสุนครับ 4. รอเวลา ตรงส่วนนี้เราจะรันคำสั่งรอเวลาเพื่อให้กระสุนมีระยะทางการวิ่งไปในระยะทางที่เรากำหนดไว้ครับ 5. ควบคุมสวิตช์ จากนั้นก็ปิดสวิตช์ที่เปิดไว้ในข้อที่ 3. ครับผม จากนั้นก็ทำอย่างนี้ให้ครบทุกทิศทางทั้งหมด 4 ทิศน่ะครับ ดูภาพประกอบได้ เย้! ในที่สุดเราก็เขียนเสร็จเรียบร้อยหมดแล้วครับ...ทีนี้ก็สามารถกดรันเกมเพื่อทดสอบได้เลยครับ ;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 เดียวกันก็พอ RE: วิธีทำระบบ Action เบื้องต้น [ตอนที่ 1] - OP_Jum_RPG - 07-03-2012 ก็ถึงได้ถามอยู่เนี่ย ว่าจะไปเปิดมันทำไม ข้างล่างมี เดี๋ยวปิดเดี๋ยวเปิด แต่ข้างบนสั่งเปิดตลอดเวลา อันนี้แปะให้ดู RE: วิธีทำระบบ Action เบื้องต้น [ตอนที่ 1] - Mysticphoenix - 07-03-2012 ต้องเช็ค "ข้ามการเคลื่อนที่ในจุดที่ไปไม่ได้" ด้วยนะ ไม่งั้นเกมค้างนะ เออ แล้วอย่าลืมอัพ DEMO เน้อ เขียน tutorial อย่างนี้ต้องมี demo ให้ดูด้วย เห็นว่ามี หลาย part งั้นรอทำ DEMO ตอนถึง part สุดท้ายก็ได้ |