nooknazha โพสต์ 2019-11-30 20:35:48

[Renpy] 64. วิธีทำหน้าหน้า Title ก่อนเข้าสู่หน้า Main Menu หลัก

แก้ไขครั้งสุดท้ายโดย nooknazha เมื่อ 2019-11-30 20:41


64. วิธีทำหน้า Title ก่อนเข้าสู่หน้า Main Menu หลัก
สำหรับบทความนี้ ยังไงก็หนีไม่พ้นเจ้า Label Splashscreen นะคะ เพราะความพิเศษของ Label Splashscreen คือ มันถูกสร้างขึ้นมาเพื่อให้ทำงานก่อนหน้า Main menu ทุกครั้งที่เข้าเกมส์ จึงเอื้ออำนวยให้คำสั่งอะไรก็ตามที่เราต้องการให้ทำงานก่อนที่จะไปถึงหน้าเมนูหลัก สามารถนำมายัดๆ โฮ๊ะๆ เข้าไปในเจ้า Label Splashscreen ตัวนี้ได้ทั้งสิ้น หุหุ

เนื้อหาในบทความนี้จะเชื่อมโยงกับอีก 2 บทความนะค่ะ คือ

1. - 21. วิธีทำไตเติ้ลก่อนเข้าหน้า main menu ( LabelSplashscreen)
2. - วิธีที่ภาพ Animation หน้า Imagemap Main Menu และ Imagemap หน้าอื่นๆ
ขั้นตอนการทำงานคร่าวๆ ของคำสั่งในบทความนี้นะคะ คือ
1. เมื่อ User คลิกเข้าไอคอนเกมส์ Label Splashscreen จะถูกนำมาประมวลผลก่อน หน้า VDO Logo ของเราจะถูกแสดงขึ้นจนจบ
2. แล้วหน้า "คลิกเพื่อเล่นเกมส์" จะแสดงต่อมา พร้อมกับเปิดดนตรีบรรเลง รอให้ User คลิกที่หน้าจอ 1 ครั้ง
3. เมื่อ User คลิกที่หน้าจอ เพื่อเล่นเกมส์แล้ว ดนตรีบรรเลงข้อ 2 จะถูกปิดลง และระบบจะเปิดหน้า Main Menu ขึ้นมา พร้อมกับเปิดดนตรีบรรเลงใหม่อีกเพลงขึ้นมาแทน
4. หลังจาก User คลิกปุ่ม "Start" ที่หน้าเมนูหลัก ดนตรีบรรเลง ข้อ 3 จะถูกปิดลง พร้อมกับตัวเกมส์จะเริ่มเข้าสู่เนื้อหาหลักภายในเกมส์

ภาพเพิ่มเติมที่ต้องเตรียมสำหรบัในบทความนี้ ก็คือภาพที่จะต้องเอามาทำเป็นหน้า Imagemap เพื่อให้คลิกก่อนที่จะเข้าสู่หน้าเมนูหลัก

1. หน้าแบบปกติ passscreen.jpg



2. ภาพที่จะเปลี่ยนไปเมื่อเอาเม้าส์มาวางทับ passscreen2.jpg




***สำหรับตัว VDO Logo และภาพ Imagemap หน้า Main Menu ข้าพเจ้าทำไว้ในในทั้ง 2 บทความ(ลิงค์ข้างบน)

==============================================

โค๊ดในบทความนี้จะใช้ได้ผลกับเฉพาะโปรแกรม Renpyเวอร์ชั่น 6.14 นะคะ ถ้าชัวร์ๆเลยแนะนำให้ใช้ 6.16 จะดีกว่า ใช้โค๊ดคำสั่งใหม่ๆ ได้อย่างมีประสิทธิภาพมากขึ้น (ส่วนเวอร์ชั่น 6.18 มันมีลิขสิทธิ์ค่ะ เห็นว่าทีมพัฒนาเขาจะทำขายกันแล้ว เวอร์ชั่น 6.18 พัฒนามาให้สนับสนุนระบบเสียงมากขึ้นเพื่อให้คนตาบอดสามารถเล่นเกมส์ได้)

(ภาพอธิบายโครงสร้างการทำงานคร่าวๆ ของ Label splashscreen ก่อนที่จะวิ่งไปที่หน้า Main Menu หลัก)



จะก๊อปโค๊ดทั้งหมดไปวาง แล้วค่อยไล่แก้ชื่อไฟล์ทีหลังก็ได้ค่ะ กันเผื่อพิมพ์อะไรตกหล่น จะได้ไม่เกิด Error ทีหลัง

(โค๊ดตัวเต็มที่เชื่องโยงกันใน Label Splashscreenและ Label ตัวอื่นๆ ภายในไฟล์ script.rpy)

################# หน้า splashscreen ไว้แสดง Logo และ Intro#######################

label splashscreen:

    $ renpy.movie_cutscene('Intro_logo.mpg')
    play music "Pandora Hearts - Lacie.mp3"# [เปิด] ดนตรีเริ่มบรรเลง
   
    call screen presstitle
   
    $ result = _return
   
    if result == "press":
      stop music
      return


######### หน้าแสดงก่อนเข้าเกมส์( คลิกที่หน้าจอเพื่อเข้าสู่เกมส์ )##############

screen presstitle:
    imagemap:
      ground 'passscreen.jpg'##ภาพแบบปกติ
      hover 'passscreen2.jpg' ##ภาพที่จะเปลี่ยนแปลงเมื่อเลื่อนเม้าส์มาวางทับ
      
      hotspot (155, 204, 513, 166) clicked Return("press")#สั่งให้ส่งค่าคำตอบกลับไปที่ label example
      
##################################################################

screen main_menu:

    tag menu
    imagemap:
      ground 'ground.jpg'##ภาพแบบปกติ
      hover 'hover.png' ##ภาพที่จะเปลี่ยนแปลงเมื่อเลื่อนเม้าส์มาวางทับ
      
      hotspot (105, 300, 133, 132) action Start() hover_sound "click.wav"
      hotspot (214, 438, 132, 133) action ShowMenu('load') hover_sound "click.wav"
      hotspot (434, 453, 132, 132) action ShowMenu('preferences') hover_sound "click.wav"
      hotspot (577, 321, 132, 128) action Quit(confirm=False) hover_sound "click.wav"

    add "butterfly" #แทรกเอฟเฟคผีเสื้อกระพือปีกที่หน้าเมนูหลัก

################ ประกาศตัวแปร ภาพ/ เพลง/ ชื่อตัวละคร ####################

define e = Character('Eileen', color="#c8ffc8")

#######################      เริ่มเกมส์   ###############################

label start:
    stop music# [ปิด] ดนตรีบรรเลง

    e "You've created a new Ren'Py game."

    e "Once you add a story, pictures, and music, you can release it to the world!"

    return
   
####################################################################
================================
คำสั่งให้เล่นดนตรีบรรเลงที่หน้า Main Menu (ทุกครั้งที่กลับมาที่หน้าเมนูหลัก ดนตรีบรรเลงจะเล่นอัตโนมัติ) ใส่ไว้ที่ไฟล์ options.rpy

    stop music# [ปิด] ดนตรีบรรเลง

แถมท้ายให้กับ คำสั่งที่จะทำให้มีเสียงคลิก เวลาคลิกปุ่มต่างๆ ในเกมส์(มันจะทำงานกับเฉพาะปุ่มที่เป็นชนิด Imagemap เท่านั้น) ให้นำไปใส่ไว้ที่ไฟล์ options.rpy ค่ะ (ไฟล์เสียงคลิก เราจะต้องเตรียมมาไว้เองด้วย)

    style.imagemap_button.hover_sound = "click.wav"
    style.imagemap_button.activate_sound = "click.wav"
ตัวอย่างการใส่คำสั่งที่ไฟล์ option.rpy



================================
undefined
เอาล่ะ มาลองดูผลลัพธ์การทำงานของโค๊ดกลุ่มคำสั่งกันเลยดีกว่า


- เปิดเกมส์ปุ๊บก็โชว์หน้า VDO Logo ก่อนเป็นอันดับแรก



- แล้วก็แสดงหน้ารอการ "คลิกเพื่อเล่นเกมส์"พร้อมกับเปิดดนตรีบรรเลงเพราะๆ เล่นวนให้ฟัง




- เมื่อผู้เล่นคลิกที่ปุ่มกลางหน้า 1 ครั้ง เพลงบรรเลงก่อนหน้าจะถูกปิดลง พร้อมกับเล่นเพลงใหม่ซึ่งเป็นเพลงประจำของหน้า Main Menu และหน้า Main Menu ก็จะถูกเปิดขึ้น



- หลังผู้เล่นคลิกที่ปุ่ม "Start" ที่หน้า Main Menu แล้ว ระบบก็จะสิ่งไปที่ Label start: เพื่อเข้าสู่เนื้อหา พร้อมกับดนตรีบรรเลงของหน้า Main Menu ถูกปิดลง
******************************
บทความโดย นุ้ก
ขอจบบทความแค่เพียงเท่านี้ แล้วพบกันใหม่บทความหน้าค่ะ ^^
(ขอสงวนสิทธิ์อนุญาตให้เผยแพร่เฉพาะในเว็บ www.graphicfufu.comเท่านั้น)
หน้า: [1]
ดูในรูปแบบกติ: [Renpy] 64. วิธีทำหน้าหน้า Title ก่อนเข้าสู่หน้า Main Menu หลัก