Thaigraph

 

   

ค้นหา
Thaigraph หน้าฟอรั่ม Ren'Py [renpy] วิธีแทรกหน้า Bonus ไว้ที่ ...
ดู: 1806|ตอบ: 4
go

[renpy] วิธีแทรกหน้า Bonus ไว้ที่ Main Menu แบบ Imagemap

Rank: 7Rank: 7Rank: 7

โพสต์เมื่อ 8-2-2013 22:46 |แสดงโพสต์ทั้งหมด
[renpy] วิธีแทรกหน้า Bonus ไว้ที่ Main Menu แบบ Imagemap

พูดง่ายๆก็คือ เป็นการเพิ่มลูกเล่นพิเศษให้กับผู้เล่น โดยในการเล่นครั้งแรกผู้เล่นจะเห็นหน้าเกมส์เป็นแบบปกติค่ะ แต่เมื่อผู้เล่นเล่นจบจน หรือเล่นจนสามารถเคลียร์เกมส์ได้แล้ว และกลับมาที่หน้าเมนูอีกครั้ง หน้าหลักของเกมส์จะมีเมนูพิเศษแสดงให้เห็น


หน้าพิเศษมีไว้ทำอะไร?
แล้วแต่เราจะกำหนดค่ะ เช่น
1. เป็นหน้ารวมภาพ CG แกลอลรี่ลับ
2. เป็นหน้ารวมภาพฉากประทับใจที่ผู้เล่นทำถูกต้องตามเงื่อนไข
3. ข้อมูลลับของตัวละครในเกมส์ เช่น วันเดือนปีเกิด ส่วนสูง อาหารหรือสิ่งของที่ชอบ
4. ฟังเสียงพากษ์ตัวละคร

5. ฟังเสียงเพลงประกอบเกมส์
6. ดูภาพมูวี่เกมส์(อนิเมชั่น)  
7. บทสนทนาพิเศษระหว่างตัวละคร ที่ไม่มีอยู่ในเนื้อเรื่องหลัก
8. ฯลฯ


โค๊ดที่จำเป็นต้องใช้
-ที่ไฟล์ Options.rpy ให้ใส่โค๊ดลงไปดังนี้เค่ะ


Code:



  1. screen main_menu:
  2.     tag menu
  3.     if not persistent.extra_unlocked: #หาก persistent.extra_unlocked: เป็นเท็จ(=False) ให้ทำตามเงื่อนไขดังนี้
  4.         imagemap:
  5.             ground 'menu/main_menu_first.jpg'
  6.             hover  'menu/main_menu_first_hover.jpg'
  7.         
  8.             hotspot (314, 165, 251, 70) action Start() hover_sound "sound/click.wav"
  9.             hotspot (314, 235, 251, 64) action ShowMenu('load') hover_sound "sound/click.wav"
  10.             hotspot (314, 299, 251, 77) action ShowMenu('preferences') hover_sound "sound/click.wav"
  11.             hotspot (314, 376, 251, 73) action Quit(confirm=False) hover_sound "sound/click.wav"

  12.     else: #ถ้า persistent.extra_unlocked: เป็นจริง(=True) ให้ทำตามเงื่อนไขดังนี้
  13.         imagemap:
  14.             ground 'menu/main_manu_special.jpg'
  15.             hover 'menu/main_manu_special_hover.jpg'

  16.             hotspot (314, 155, 251, 66) action Start() hover_sound "sound/click.wav"
  17.             hotspot (314, 221, 251, 62) action ShowMenu('load') hover_sound "sound/click.wav"
  18.             hotspot (314, 283, 251, 72) action Start('special') hover_sound "sound/click.wav"
  19.             hotspot (314, 355, 251, 75) action ShowMenu('preferences') hover_sound "sound/click.wav"
  20.             hotspot (314, 430, 251, 67) action Quit(confirm=False) hover_sound "sound/click.wav"
คัดลอกไปที่คลิปบอร์ด

อธิบายโค๊ด
....โค๊ดด้านล่าง คือหน้าพิเศษที่เราสร้างเพิ่มขึ้นมา เมื่อทำการคลิกเข้าที่เมนูนี้ โปรแกรมจะวิ่งไปที่ label ชื่อ special: ในไฟล์ script.rpy ทันที
  1. hotspot (314, 283, 251, 72) action Start('special') hover_sound "sound/click.wav"
คัดลอกไปที่คลิปบอร์ด
.....โค๊ดด้านล่างอีกตัว คือคำสั่งสำหรับให้เปิด "เสียงเฟคเอฟประกอบ" เวลาที่เรา "เลื่อนเม้าส์ผ่านปุ่มเมนูแต่ละปุ่ม"ค่ะ
  1. hover_sound "sound/click.wav"
คัดลอกไปที่คลิปบอร์ด

และที่ไฟล์ script.rpy ให้เราใส่สคริปว่า
  1. $ persistent.extra_unlocked = True
คัดลอกไปที่คลิปบอร์ด
ที่ตำแหน่งท้ายสุดของเกมส์(จบเกมส์) เพื่อกำหนดให้ตัวแปรชื่อ "persistent.extra_unlocked" มีค่าเป็น "True"

และต่อจากนั้นก็ให้สร้าง label ชื่อ special ขึ้นมา ในส่วนของ label special นี้ เราจะทำเป็นหน้าเมนูพิเศษ(Imagemap)  หรือจะทำเป็นบทสนทนาพิเศษโต้ตอบกันระหว่างตัวละครซึ่งไม่มีในเนื้อเรื่องหลักก็ได้เช่นกันค่ะ


ตัวอย่างการใส่โค๊ดที่ไฟล์ script.rpy
Code:

  1. label start:

  2.     scene p7
  3.     show m with dissolve
  4.     p "สวัสดีชาวไทยกราฟทุกท่าน ฉันชื่อ \"ปกิณกะ\" ยินดีที่ได้รู้จักค่ะ!"
  5.     "...ดำเนินเนื้อเรื่องเกมส์ไปตามปกติ......."
  6.     "....................จบเกมส์แล้วจ๊ะ..............."
  7.     $ persistent.extra_unlocked = True #สั่งให้ persistent.extra_unlocked = True (เป็นจริง)
  8.                                                              #ใส่โค๊ดนี้ไว้ที่บรรทัดสุดท้าย
  9.                                                              #ต่อจากบทสนทนาสุดท้ายของเกมส์(ก่อนจบเกมส์)
  10.     return

  11. #สร้าง" ladel specia"l ขึ้นมา เพื่อเข้าสู้หน้าเมนู(Imagemap)พิเศษ
  12. label special:

  13.     call screen example_imagemap #<---------ตัวอย่างคำสั่งเรียกหน้า Imagemap ขึ้นมา(มีวิธีทำสอนไว้ในบทความหลังๆ)

  14.     return
คัดลอกไปที่คลิปบอร์ด
.........................................................................

ดูแต่โค๊ดอย่างเดียว น้องๆอาจจะยังงงๆ งั้นมาดูวิธีทำกันดีกว่าค่ะ


วิธีทำ
ขั้นตอนที่ 1 หลักๆเราจะต้องเตรียมภาพสำหรับทำหน้า Main Menu ไว้ 4 ภาพค่ะ  คือ
1. หน้าเมนูหลัก(ground)


2. หน้าเมนูหลัก จะเปลี่ยนแปลงเมื่อมีเม้าส์เลื่อนมาวางทับบนเมนู (hover)


3. หน้าเมนูหลักพิเศษปกติ(ground)


4. หน้าเมนูหลักพิเศษ จะเปลี่ยนแปลงเมื่อมีเม้าส์เลื่อนมาวางทับบนเมนู (hover)


ภาพที่ 5 เป็นภาพที่ออกไว้เป็นหน้าพืเศษ เมื่อผู้เล่นทำการคลิกเมนู "special" ก็จะเจอกับหน้า Imagemap หน้านี้ค่ะ (หรือจะไม่ทำก็ได้ เช่นเมื่อคลิกเข้ามาก็จะพบกับบทสทนาพิเศษโต้ตอบกันระหว่างตัวละครแทน)



ขั้นตอนที่ 2 เมื่อภาพพร้อมแล้ว เราจะต้องหาพิกัดแต่ละตำแหน่งของ Imagemap ทั้งหน้าเมนูแบบปกติ และหน้าเมนูแบบพิเศษค่ะ
(หากยังหาพิกัดภาพไม่เป็นให้ศึกษาจากบทความนี้ก่อนค่ะ [renpy] วิธีทำ Imagemap ภายในเกมส์ )



ขั้นตอนที่ 3
เปิดไฟล์ screen.rpy ดูประมาณบรรทัดที่170-200 เราจะเจอโค๊ดเมนูหลักที่โปรแกรมสร้างมาให้ ให้แดรกเม้าส์เลือกโค๊ดทั้งชุดและกดปุ่ม Delete ลบทิ้งไปเลยค่ะ (ไม่งั้นมันจะไปกวนกับโค๊ดหน้าเมนูหลักที่เราจะใส่ลงไป)




ขั้นตอนที่ 4
เปิดไฟล์ options.rpy ให้นำโค๊ดหน้า mainmenu ที่เราทำเป็น Imagemap ไว้มาใส่ไว้ที่บรรทัดล่างสุดค่ะ



ขั้นตอนที่ 5
เปิดไฟล์ script.rpy ใส่โค๊ด $ persistent.extra_unlocked = True เพิ่มลงไปที่ตำแหน่งก่อนจบเกมส์ และสร้างหน้า label special เตรียมไว้


ขั้นตอนที่ 6
- บันทึกไฟล์ทั้งหมดและรันเกมส์ค่ะ
- เมื่อเข้าเกมส์ครั้งแรก หรือถ้าผู้เล่นยังเล่นเกมส์ไม่จบจริง หน้าเมนูหลักจะแสดงเป็นหน้าปกติตามตัวอย่างข้างล่างค่ะ



- เราจะต้องเล่นเกมส์ให้จบก่อน



- เมื่อเราเล่นเกมส์จนเคลียร์เกมส์จบแล้ว โปรแกรมจะวิ่งกลับไปที่หน้าเมูหลักอีกครั้ง และจะแสดงหน้าเมนูพิเศษขึ้นมา (ดูภาพด้านล่างประกอบ)



- แล้วเมื่อผู้เล่นคลิกเลือกที่เมนู "Special" โปรแกรมก็จะวิ่งไปที่ไฟล์ script.rpy ตรง label ชื่อ special ค่ะ
- และภายใน label special: ข้าพเจ้าได้ใส่โค๊ดคำสั่งไว้ว่า call screen example_imagemap ซึ่งเป็นการสั่งให้โปรแกรมแสดงหน้า Imagemap ชื่อ "example_imagemap" ขึ้นมา ผลลัพธ์ก็จะออกมาเป็นดังภาพด้านล่างค่ะ



สามารถดูต่อความเนื่องได้ที่นี่ค่ะ [renpy] วิธีทำ CG Gallery แบบ Imagemap


บทความโดย NOOKFUFU2
(ขอสงวนสิทธิ์ให้เผยแพร่เฉพาะในเว็บไทยกราฟเท่านั้น!!!)



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

Rank: 1

โพสต์เมื่อ 13-2-2013 02:09 |แสดงโพสต์ทั้งหมด
ตอบกระทู้ NOOKFUFU2 ตั้งกระทู้

หนูอยากใส่ภาพ หลายๆภาพไว้ใน ในspecial แต่ทำไม่ได้สักที พี่ช่วยสอนหนูอย่างละเอียดทีนะคะ ขอบคุณมากเลยคะ

Rank: 7Rank: 7Rank: 7

โพสต์เมื่อ 13-2-2013 03:11 |แสดงโพสต์ทั้งหมด
ตอบกระทู้ nainaii ตั้งกระทู้

หมายถึงทำอัลบั้มภาพน่ะเหรอ? ไว้จะทำให้ค่ะ แต่ขอเปลี่ยนหน้ากาก renpy (หน้าเกมส์)ให้ครบทุกหน้าก่อนนะค่ะ


Rank: 1

โพสต์เมื่อ 19-2-2013 00:47 |แสดงโพสต์ทั้งหมด
ขอบคุณพี่มากเลยคะ

Rank: 1

โพสต์เมื่อ 16-3-2013 22:38 |แสดงโพสต์ทั้งหมด
เด็กใหม่ ไม่ค่อยรู้ ไว้มั่น เรียนรู้ มั่นศึกษา ขอบคุณ ท่านจอมยุทธ ผู้คุมกฎไทยกราฟ NOOKFUFU2
คุณต้องเข้าสู่ระบบก่อนจึงจะสามารถตอบกลับ เข้าสู่ระบบ | สมัครสมาชิก


Thaigraph

GMT+7, 16-9-2019 03:14 , Processed in 0.152345 second(s), 20 queries .

Powered by Discuz! X1.5

© 2001-2010 Comsenz Inc. Thai Language by DiscuzThai! Team.

Top 10 Best Sellers in Clothing for 2017 Top 10 Best Sellers in Clothing Best Sellers in Clothing
Top 10 Best Sellers in Books reviewer 2017 Top 10 Best Sellers in Books Best Sellers in Books