การสร้างหน้าเมนูโดยใช้อีเวนท์โชว์ภาพ - 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: การสร้างหน้าเมนูโดยใช้อีเวนท์โชว์ภาพ (/thread-1636.html) |
การสร้างหน้าเมนูโดยใช้อีเวนท์โชว์ภาพ - Nazuth - 02-02-2014 การสร้างเมนูโดยใช้อีเวนท์ สามารถนำไปใช้ได้ทั้ง RMXP,RMVX,RMVX ACE บทความนี้ค่อนข้างยากและต้องใช้ความชำนาญเอ็นจิ้นพอสมควรนะครับตรงไหนงงก็ถามได้จะพยายามอธิบายไปทีละขั้นตอน บทความนี้ไม่อนุญาติให้นำไปเผยแพร่ที่อื่นโดยไม่ได้รับอนุญาต การทำเมนูโดยใช้อีเวนท์มีคำสั่งหลักๆที่ต้องใช้ให้คล่องอยู่สี่คำสั่งครับ 1.โชว์ภาพ 2.เช็คเงื่อนไข 3.สวิตซ์ 4.ตัวแปร ถามว่าทำไมต้องทำเมนูโดยใช้อีเวนท์เพราะมันง่ายกว่าการเขียนสคริปท์และมีอิสระพอสมควรสามารถนำไปประยุกต์ใช้ได้หลายอย่างไ่ม่จำเป็นต้องใช้ทำเป็นเมนูเพียงอย่างเดียว อาจทำเป็นหน้าแสดงภารกิจ หรือแสดงความสัมพันธ์ตัวละครก็ได้ตามแต่ละประยุกต์ใช้ ตัวอย่างการใช้ทำเมนูโดยใช้คำสั่งโชว์ภาพจากโปรเจ็คที่ผมเคยทำทิ้งไว้ ตั้งแต่เริ่มเข้าเกมไปจนถึงคำสั่งที่ใช้ในเกมรวมถึงคำสั่งแต่ละคำสั่งล้วนมีการใช้คำสั่งโชว์ภาพเป็นส่วนประกอบทั้งสิ้นครับ ทีนี้มาดูวิธีทำกันทีละขั้นตอนเลยว่าทำอย่างไร ตัวอย่างภาพที่ใช้เป็นเมนูให้ทำภาพเมนูกับภาพปุ่มเลืิอกแยกกันไว้แบบนี้ ขออธิบายเฉพาะคำสั่งที่ใช้ในหัวข้อนี้เท่านั้นนะครับบางคำสั่งที่เห็นในภาพเป็นส่วนประกอบของโปรเจ็คที่ทำคาไว้ อีเวนท์นี้สามารถทำในเหตุการณ์ทั่วไปได้เลยเพื่อให้เรียกใช้ได้เรื่อยๆไม่ต้องทำใหม่โดยให้เลือกเงื่อนไขเป็น parallel แล้วกำหนด สวิตซ์หนึ่งไว้สำหรับเปิดปิดเหตุการณ์ -เพราะไม่จำเป็นต้องใช้เมนูของระบบผมเลยใช้คำสั่งปิดเมนูไปเลย -คำสั่งสคริปท์ในช่องถัดมาคือการทำให้ตัวฮีโร่ขยับไม่ได้ครับใช้โค้ดนี้เลย $game_temp.message_window_showing = true หากต้องการให้ฮีโร่ขยับได้ตรงไหนก็ใส่โค้ดไว้อีกที่ตรงนั้น เปลี่ยนจาก true เป็น false เช่นให้ตอนเปิดเมนูฮีโร่ขยับไม่ได้แล้วตอนปิดเมนูถึงจะขยับได้ก็เอาโค้ดไปใส่ตอนเปิดเมนูแล้วตอนปิดก็ใช้โค้ดเดิมแต่เปลี่ยน true เป็น false -ให้ใช้คำสั่งตรวจเช็คเงื่อนไข เมื่อกดปุ่มลง แล้วให้เพิ่มเคสไว้ด้วยสำหรับตรวจเช็คเงื่อนไขอีกอันเป็นปุ่มขึ้นตามภาพ -ใช้คำสั่งรอเวลาสักหน่อยตามความเหมาะสมเพื่อไม่ให้กดปุ่มรัวจนระบบรวนได้ -อาจใช้คำัสั่งเอฟเฟคเป็นเสียงปุ่มกดตามภาพ -ให้กำหนดตัวแปรมาตัวหนึ่งให้เป็นหมายเลขคำสั่งที่เลือกกำหนดให้กดลงเป็นการบวกตัวแปรไป 1 หน่วย ถ้ากดขึ้นก็ให้ลบ 1 หน่วย (สามารถสลับกันได้) -ตรวจเช็คคำสั่งที่แทนค่าเป็นตัวแปร อันนี้ใช้สำหรับเวลาที่กดขึ้นลงเกินไปจากคำสั่งที่กำหนดจะย้อนกลับไปเป็นสั่งแรก เช่น มีอยู่5คำสั่งถ้าเรากดลงไปอีกจากคำสั่งที่5จะย้อนไปคำสั่งที่1แทนหรือเรากดขึ้นที่คำสั่งที่1จะลงไปอยู่ที่คำสั่งที่5แทน ให้ตั้งตัวแปรไว้น้อยกว่าหรือมากกว่าจำนวนคำสั่ง 1 หน่วย แล้วเมื่อเงื่อนไขตรงตามนั้นก็ไปเซ็ตตัวแปรในเงื่อนไขเป็นเป็นตัวแปรที่ต้องการเช่นจะให้ย้อนไปที่คำสั่งแรกก็เซ็ตตัวแปรเป็น 1 ซะ -จากคำสั่งตรวจเช็คเงื่อนไขกดปุ่มขึ้นให้เลือกเพิ่มเคสอีกครั้งหนึ่งแล้วใช้คำสั่งตรวจเช็คเงื่อนไขอีกครั้งเป็นการกดปุ่ม C ให้เพิ่มเคสไว้ด้วยเดี๋ยวต้องใช้อีก -ทีนี้เราก็ทำการเช็คเงื่อนไขตัวแปรที่เราแทนค่าเป็นหมายเลขคำสั่ง เช่น ในวีดิโอตัวอย่างผมให้คำสั่ง move เป็นสั่งแรก ถ้าตัวแปรเท่ากับ 1 ก็จะเป็นคำสั่ง move จากนั้นเราก็ทำอีเวนท์ตามคำสั่งที่ใช้ -ที่เห็นคำสั่งโชว์ภาพเป็นภาพตัวเลือกคำสั่งครับเซ็ตไว้ให้เมื่อกดปุ่มCจะทำให้จางและเข้มขึ้นเหมือนเดิมตามลำดับเป็นการกระพริบคำสั่งนั้นแหละ -ขออธิบายแค่คำสั่งที่จำเป็นแล้วกันครับนอกนั้นเป็นคำสั่งส่วนประกอบในโปรเจ็คเก่าผมไม่มีา่วนเกี่ยวข้องกับบทความนี้ ให้เราใช้คำสั่งเปิดสวิตซ์ไปยังเหตุการณ์อื่นที่เราเซ็ตไว้อย่างเช่นผมเซ็ตไว้ให้คำัสั่งแรกเป็นคำสั่งหมุนรูเล็ตเพื่อเดินก็จำเป็นต้องไปทำอีเวนท์คำสั่งนี้อีกเหตุการณ์หนึ่ง คำสั่งที่ใช้ในเหตุการณ์นี้เป็นแค่ทางผ่านเท่านั้น -ตรงนี้อย่าลืมลบภาพที่ใช้เป็นเมนูกับตัวเลือกด้วยเมื่อสับสวิตซ์ลิงค์ไปที่เหตุการณ์อื่นแล้ว -เมื่อเปิดสวิตซ์ไปเหตุการณ์อิ่นแล้วก็ปิดสวิตซ์เหตุการณ์นี้ซะเพื่อจบเหตุการณ์ -ให้ทำแบบเดียวกันในทุกๆคำสั่ง อันนี้ไม่มีรูปภาพเนื่องจากโปรเจ็คผมไม่ได้ใช้ส่วนนี้แต่จะขออธิบายไปทีละขั้นตอนเช่นกัน -จากคำสั่งเพิ่มเคสของการตรวจเช็คเงื่อนไขโดยการกดปุ่มC ให้ตรวจเช็คเงื่อนไขอีกรอบโดยเงื่อนไชเป็นการกดปุ่ม B เพื่อเป็นการให้ออกจากหน้าเมนูได้ -ถ้าเราอยากให้คำสั่งมาเริ่มต้นที่คำสั่งแรกก็ให้ควบคุมตัวแปรที่ใช้เป็นหมายเลขคำสั่งเป็น 1 ซะหรือถ้าอยากให้จดจำไว้ว่าเลือกไว้ที่คำสั่งไหนก็ไม่ต้องทำอะไร -ทำการใช้คำสั่งลบรูปภาพที่ใช้ทั้งหมด ไม่ว่าจะเป็นหน้าเมนูหรือตัวเลือกคำสั่ง ตรงนี้ยังไม่ถึงขั้นตอนนั้นอาจจะยังงงๆว่าให้ลบอะไรให้ดูต่อไปก่อนครับแล้วย้อนกลับมาทำก็ได้ -ให้สับสวิตซ์ปิดเหตุการณ์หน้าเมนูซะก็เป็นการออกจากเมนู -(การเรียกเมนูมีวิธีทำได้สองทางคือให้ทำอีเวนท์อื่นมาเช็คเงื่อนไขว่าถ้ากดปุ่มหนึ่งจะเป็นการเปิดเมนูแล้วให้เปิดสวิตซ์เหตุการณ์นี้ขึ้นมาหรือถ้าอยากให้เป็นอีเวนท์เดียวก็ใช้สวิตซ์สองอันในเหตุการณ์แล้วเช็คเงื่อนไขไว้ว่าถ้าสวิตซ์นั้นเปิดก็ให้แสดงเมนูถ้าสวิตซ์นั้นปิดแล้วทำการกดปุ่มหนึ่งขึ้นมาก็เป็นการเรียกเมนู) -สำหรับการแสดงการโชว์ภาพให้ตรวจเช็คเงื่อนไขแล้วเพิ่มเคสซ้อนกันเรื่อยๆเช็คเงื่อนไขหมายเลขคำสั่งตามที่ตั้งไว้ เช่น ตามวีดิโอตัวอย่าง move=1 survey=2 item=3 equip=4 data=5 เราก็เช็คเงื่อนไขไปตามที่ตั้งไว้ -คำสั่งโชว์รูปจริงๆใช้แค่ที่ผมกดเลือกไว้ในภาพก็พอเป็นหน้าตอนเลือกคำสั่งแล้วปรับตำแหน่งภาพตามคำสั่งของมันเท่านั้นแต่ถ้าอยากให้เวลากดเลือกคำสั่งอื่นไปแล้วสามารถกดออกมาเป็นเมนูนี้ได้ด้วยก็ให้ใช้คำสั่งโชว์ภาพเมนูขึ้นมาใหม่แบบในภาพด้วย(ต้องให้หมายเลขภาพเป็นหมายเลขเดียวกันด้วย) ให้สังเกตจากภาพนะครับว่าตำแหน่งแกนyจะเปลี่ยนไปตามคำสั่งแต่ละอย่าง หลักคือให้ใช้หมายเลขภาพมากกว่าภาพที่เราทำเป็นหน้าเมนู จากขั้นตอนที่ผ่านมาจะได้แบบนี้แล้วครับ (ดูแค่เมนูทางด้านซ้ายนะ) การเซ็ตแต่ละปุ่มว่าจะให้ทำอะไรก็แล้วแต่คนสร้างจะทำเลยครับ อาจจะต้องมีส่วนของการเรียกใช้สคริปท์บ้าง เ่ช่นถ้าอยากให้เรียกเมนูไอเทมขึ้นมาก็ใช้คำสั่งเรียกใช้สคิปท์แล้วใส่โค้ดไป $scene = Scene_Item.new ทีนี้ก็เป็นคำสั่งเรียกเมนูไอเทมแล้ว ถ้าจะให้เรียกคำสั่งเซฟก็ใช้คำสั่งเรียกเมนูบันทึกเกมใส่ไป จะทำยังไงกับคำสั่งแต่ละคำสั่งคราวนี้ขึ้นอยู่กับจินตนาการของผู้สร้างแล้วครับว่าจะทำอย่างไร อย่างในเกม IB ก็ใช้เมนูรูปภาพแต่ไม่ได้ทำเมนูเป็นตัวเลือกแบบนี้ ใช้แค่คำสั่งเช็คเงื่อนไขมาแสดงภาพเท่านั้นเอง ป.ล.มีคำถามสามารถถามได้ครับแต่ช่วงนี้ผมอาจไม่มีเวลามาตอบเท่าไหร่เพราะร่วมกิจกรรมมหาโหดอยู่ ยังไงฝากคนที่เข้าใจช่วยตอบแทนด้วย RE: การสร้างหน้าเมนูโดยใช้อีเวนท์โชว์ภาพ - Mary - 02-02-2014 ขอบคุณสำหรับความรู้ดีๆค่ะ RE: การสร้างหน้าเมนูโดยใช้อีเวนท์โชว์ภาพ - hengmana - 02-02-2014 รู้สึกจะอธิบายข้ามขั้นตอนตรง Quote:เรียกใช้สคริปต์ $game_temp.message_window_showing = trueใครยังไม่รู้คืออะไร ให้ดูกระทู้นี้ (ของ RMXP ) http://irpg.in.th/thread-275.html ว่าแต่ดูๆ แล้วไม่เห็นเรียกสั่งปิดตรงตรงไหนเลย ; -;?? หรือว่าไม่ต้องปิดก็ได้ RE: การสร้างหน้าเมนูโดยใช้อีเวนท์โชว์ภาพ - Nazuth - 02-03-2014 (02-02-2014, 08:38 PM)hengmana Wrote: รู้สึกจะอธิบายข้ามขั้นตอนตรง ผมเอาไปใส่ไว้ในอีเวนท์อื่นที่ลิงค์กันอยู่นะครับเลยไม่ได้ใส่ในอีเวนท์นี้ RE: การสร้างหน้าเมนูโดยใช้อีเวนท์โชว์ภาพ - PorKaDas - 02-03-2014 สายอีเวนท์เหมือนกันเลย อิอิอิ RE: การสร้างหน้าเมนูโดยใช้อีเวนท์โชว์ภาพ - dreamknight - 02-03-2014 ;3 สุดยอดเลยขอรับ ท่านนัทสึกิ เอาไปใช้ประยุกต์ได้หลายอย่างเลย ขอบคุณฮับ RE: การสร้างหน้าเมนูโดยใช้อีเวนท์โชว์ภาพ - Kuma - 02-03-2014 Master Eventer Nutsukikung เอาไปประยุกต์กับ Ace ท่าจะแจ่ม RE: การสร้างหน้าเมนูโดยใช้อีเวนท์โชว์ภาพ - motley - 04-29-2014 เป็นประโยชน์อย่างมากเลยครับ ขอบคุณครับ /confident RE: การสร้างหน้าเมนูโดยใช้อีเวนท์โชว์ภาพ - Diamond - 06-01-2014 ถ้ามี Demo ให้จะดีมากๆเลยครับ เพราะว่าผมลองทำแล้วมันทำไม่ได้/ohgod |