sharifyasan Away   07-03-2012, 12:10 AM
#1
ก่อนอื่นขอออกตัวก่อนครับว่าผมไม่ได้เก่งการด้นอีเว้นสดอะไรมากเท่าไหร่...กระทู้สอนเทคนิคนี้ทำขึ้นมาจากความรู้เท่าที่ผมมีเท่านั้น สามารถนำไปใช้ประยุกต์ต่อได้อีกครับ

สำหรับ 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
This post was last modified: 07-09-2012, 02:16 AM by LuZi.
LuZi   07-03-2012, 12:13 AM
#2
เชด ชารีฟขยันมั่ก!!!

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



Shinryu   07-03-2012, 07:53 AM
#3
2. ข้ามจุดที่ไปไม่ได้ ถ้าติ๊กที่นี้ ที่ตัวอีเวทน์จะไม่จำเป็นต้องปิดอีกรอบทุกอัน
จะประหยัดบรรทัดไปได้อีก 8 บรรทัด (ปิดสวิทซ์4 รอเวลา4)

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

[Image: 7f7cb68ce0.png][Image: rlogo.png]
Show ContentSpoiler:
OP_Jum_RPG   07-03-2012, 09:58 AM
#4
1. รูปแรก
จะเปิดสวิตช์เบอร์ 5 ไปเพื่อ?
เท่าที่ดูรายการคำสั่ง เป็นสวิตช์คุมให้กระสุนออกมา
มันก็ออกตลอดเวลาสิ

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

3. อีเวนท์เช็คการกดโจมตี
เช็คว่าสวิตช์คุมกระสุนปิดอยู่ด้วยน่อ
ไม่งั้นกดรัวๆ กระสุนไม่ต้องไปไหนกันพอดี โดนดึงเข้าหาเราตลอด
This post was last modified: 07-03-2012, 10:07 AM by OP_Jum_RPG.

http://op-jum-rpg.blogspot.com/

E Book RPG Maker MV (OP_Jum_RPG, Miki Akatsuki)
http://irpg.in.th/thread-3508.html

E Book RPG Maker MZ (OP_Jum_RPG, Miki Akatsuki)
http://irpg.in.th/thread-3686.html

Touhou Excalibur: http://irpg.in.th/thread-3096.html
RockmanX VS Devil May Cry: http://irpg.in.th/thread-2698.html

sharifyasan Away   07-03-2012, 10:25 AM
#5
@OP_Jum_RPG
1. สวิตช์นี้เป็นเหมือนชนิดปืนที่เราใช้ครับ กรณีที่กระสุนมีชนิดแตกต่างออกไป เช่น ใช้ปืนไรเฟิลก็เปิด hero.fire.rifle เพื่อเปิดหน้าอีเว้นกระสุนไรเฟิล, ใช้ปืนไฟก็เปิด hero.fire.flame เพื่อเปิดหน้าอีเว้นกระสุนไฟ ประมาณนี้น่ะครับ (งงมั้ยหว่า)

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

3. วิธีนั้นผมลืมไปด้วยจริงๆครับ...แต่ผมลองตามที่เขียนแล้วกระสุนมันก็ไม่ดึงเข้าหาตัวเราตลอดนะครับ ;w;
OP_Jum_RPG   07-03-2012, 10:33 AM
#6
1. รู้สึกมันจะขัดกันเองนะนั่น
ข้างบน 5 = roger fire
ข้างล่าง 5 = hero fire
เอาไงแน่

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

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

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

ไม่งั้น ถ้ากระสุนหายไปด้วยเงื่อนไขอื่น มันจะยิงไม่ออกไปแป๊บนึง เพราะเหตุการณ์นี้ยังไม่สุด
This post was last modified: 07-03-2012, 10:35 AM by OP_Jum_RPG.

http://op-jum-rpg.blogspot.com/

E Book RPG Maker MV (OP_Jum_RPG, Miki Akatsuki)
http://irpg.in.th/thread-3508.html

E Book RPG Maker MZ (OP_Jum_RPG, Miki Akatsuki)
http://irpg.in.th/thread-3686.html

Touhou Excalibur: http://irpg.in.th/thread-3096.html
RockmanX VS Devil May Cry: http://irpg.in.th/thread-2698.html

sharifyasan Away   07-03-2012, 10:52 AM
#7
@OP_Jum_RPG
1. hero หรือ roger ก็ได้แหละครับ xD... เพราะไอดี 5 เดียวกันก็พอ Tongue
OP_Jum_RPG   07-03-2012, 11:02 AM
#8
ก็ถึงได้ถามอยู่เนี่ย ว่าจะไปเปิดมันทำไม
ข้างล่างมี เดี๋ยวปิดเดี๋ยวเปิด
แต่ข้างบนสั่งเปิดตลอดเวลา

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

http://op-jum-rpg.blogspot.com/

E Book RPG Maker MV (OP_Jum_RPG, Miki Akatsuki)
http://irpg.in.th/thread-3508.html

E Book RPG Maker MZ (OP_Jum_RPG, Miki Akatsuki)
http://irpg.in.th/thread-3686.html

Touhou Excalibur: http://irpg.in.th/thread-3096.html
RockmanX VS Devil May Cry: http://irpg.in.th/thread-2698.html

Mysticphoenix   07-03-2012, 11:31 AM
#9
ต้องเช็ค "ข้ามการเคลื่อนที่ในจุดที่ไปไม่ได้" ด้วยนะ ไม่งั้นเกมค้างนะ เหยาหมิงสยอง

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

เห็นว่ามี หลาย part งั้นรอทำ DEMO ตอนถึง part สุดท้ายก็ได้
This post was last modified: 07-03-2012, 11:37 AM by Mysticphoenix.

[Image: webboard%20signature1_zpskhtut2jg.png]
การทำอาหารที่อร่อยที่สุด และเดือดร้อนชาวบ้านมากที่สุด กำลังจะเริ่มขึ้น
  
Users browsing this thread: 5 Guest(s)
Powered By MyBB, © 2002-2024 MyBB Group.
Made with by Curves UI.