nooknazha โพสต์ 2018-6-13 12:27:27

[Renpy] 25. วิธีทำ CG Gallery แบบ Imagemap


25. วิธีทำ CG Gallery แบบ Imagemap

บทความนี้จะต่อเนื่องมาจากบทความสอนวิธีการแทรกหน้า Bonus ไว้ที่หน้าเมนูหลัก2 บทความด้านล่างนะค่ะ

ขั้นตอนที่ 1
ในที่นี้ข้าพเจ้าจะทำให้เมื่อคลิกที่เมนู"Bonus" โปรแกรมวิ่งไปที่หน้าGallery ชื่อ CG_Gallery_CAT ก่อนเป็นหน้าแรก(หรีอคุณจะเอาหน้าไหนขึ้นก่อนก็ได้)

1. วิธีแทรกหน้าBonus ที่ Main Menu แบบ Classic


textbutton _("Bonus") action ShowMenu("CG_Gallery_CAT").2. วิธี Imagemap หน้า Bonus ไว้ที่ Main Menu

ในกรณีที่กำหนด 'CG_Gallery_CAT' เป็น labelจะใช้คำสั่งนี้ในการเรียกหา label ค่ะ
<font size="4" face="Tahoma">hotspot (314, 283, 251, 72) action Start('CG_Gallery_CAT')</font>
แต่จากบทความที่ผ่านมาข้าพเจ้าจะแนะนำให้สร้างเป็นหน้าscreen ขึ้นมาใหม่เลยก็จะใช้คำสั่งนี้แทนค่ะ

<font size="4" face="Tahoma">hotspot (314, 283, 251, 72)action ShowMenu('CG_Gallery_CAT')</font>ขั้นตอนที่ 2
- ปัจจัยหลักสำคัญเลยสำหรับการทำGallery นั่นก็คือภาพฉากสำคัญต่างๆ ที่จำเป็นต้องมีในเกมส์นอกจากนี้ก็รวมถึงหน้าเมนูที่เราจะต้องออกแบบเองด้วย

- ให้เตรียมภาพ 2 ชุดด้วยกันค่ะ คือ

1. เตรียมภาพหน้าเมนู CG Gallery ของแต่ละตัวละคร***ย้ำ!!! ของแต่ละตัวละคร ถ้ามีตัวละคร 4 ตัวเราก็ต้องออกแบบหน้าเมนูของตัวละคร 4 กลุ่มด้วยกัน

ยกตัวอย่างเช่น มีตัวละครทั้งหมด 4 ตัวภาพหน้าเมนู Gallery ที่คุณจะต้องออกแบบจะต้องเตรียมไว้ทั้งสิ้น 4 ชุดและภายในภาพแต่ละชุดนั้นจะประกอบไปด้วยภาพเมนูแบบต่างที่ให้มีผลและไม่มีผลกับเม้าส์ และภาพที่มีผลต่อเงื่อนไข ชุดละ 4 -5 ภาพ ด้วยกัน

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

ในบทความนี้เข้าพเจ้าจะออกแบบไว้เฉพาะแค่หน้า CG_Gallery_CATเท่านั้นนะค่ะ หน้า CG_Gallery_DOG , CG_Gallery_BUNNY ,CG_Gallery_XXX ไม่ทำ (ขี้เกียจ -*- )


ตัวอย่างภาพที่ต้องเตรียมในแต่ละชุด....

1. ภาพที่ไม่สามารถคลิกเข้าไปดูได้ หากเงื่อนไขไม่ถูกต้อง(ยังไม่ถูกปลดล๊อค)
2. ภาพที่จะเปลี่ยนแปลงเมื่อมีเม้าส์เลื่อนมาวางทับ

3. ภาพที่ถูกปลดล๊อคแล้ว สามารถคลิกเข้าไปดูได้

4. ภาพเมนูที่ กำลังถูกคลิกเลือกอยู่

ขั้นตอนที่ 3
- ภาพชุดที่ 2คือ เราจะต้องเตรียมภาพ CG ไว้ให้มากที่สุด จะ20 หรือ 30 ถ้าขยันวาดได้ก็ขนมาเยอะๆหุหุ (แต่ข้าพเจ้าขี้เกียจวาด เอาภาพแมวตามเน็ตมาใส่แทนก่อนก็แล้วกัน ^^")ขนาดภาพ 800*600 pt หรือหรือเท่ากับขนาดหน้าจอเกมส์ที่เราเซ็ตไว้ เช่น 1024 หรือมากกว่านั้นก็ได้
ขั้นตอนที่ 4
1. เปิดโปรแกรม JEditขึ้นมา(เปิดผ่านโปรแกรม renpy ก็ได้)และไปที่คำสั่ง File > New.... (หรือกดปุ่ม Ctrl+N)
2. โปรแกรมจะสร้างหน้า New โล่งๆมาให้เรา
3. ให้นำก๊อปปี้โค๊ดด้านล่างนี้ไปใส่ค่ะ

<font size="4" face="Tahoma">
##########################################
#--รวมหน้า Screen ภาพของ...แมว...แต่ละภาพ (มีทั้งหมด 4 ภาพ)--
##########################################
label cat1: #<--ภาพแมว ภาพที่ 1
    scene cat1 with dissolve
    $ renpy.pause ()#<---- ถ้าคลิกเม้าส์ เปลี่ยนถึงจะเปลี่ยน หากไม่ใส่คำสั่งนี้ ภาพจะเฟสต่อเนื่องจนครบ
   
    scene cat5 with dissolve
    $ renpy.pause ()
   
    scene cat6 with dissolve
    $ renpy.pause ()
    #$ renpy.pause (5.0) <----แบบกำหนดระยะเวลาในการเฟสภาพอัตโนมัติ
    p "น่ารักทุกภาพเลยเน๊าะ >0<...."
    hide cat1
    hide cat5
    hide cat6
    $ renpy.game_menu("CG_Gallery_CAT") #<สั่งให้กลับไปที่หน้า Gallery ของ กลุ่มภาพแมวอีกครั้ง
return
   
screen cat2: #<--ภาพแมว ภาพที่ 2
    button clicked Hide("cat2", transition=fade)#<แบบสั่งให้แสดงภาพ cat2 เมื่อคลิกอีกครั้งจะวิ่งไปที่ screen CG_Gallery_CAT
    add "map/cat2.jpg"
   
screen cat3: #<--ภาพแมว ภาพที่ 3
    button clicked   Hide("cat3", transition=fade)
    add "map/cat3.jpg"
   
screen cat4: #<--ภาพแมว ภาพที่ 4
    button clickedHide("cat4", transition=fade)
    add "map/cat4.jpg"

##########################################   
#----รวมหน้า Screen ภาพของ...สุนัข...แต่ละภาพ (มีทั้งหมด 4 ภาพ)
##########################################

screen dog1: #<--ภาพสุนัข ภาพที่ 1
    button clickedHide("dog1", transition=fade)
    add "map/dog1.jpg" #<---ใส่ชื่อหลอกไว้ จริงๆมันไม่มีภาพ (ยังไม่ได้ภาพหมาไว้)
   
screen dog2: #<--ภาพสุนัข ภาพที่ 2
    button clickedHide("dog2", transition=fade)
    add "map/dog2.jpg"
   
screen dog3: #<--ภาพสุนัข ภาพที่ 3
    button clickedHide("dog3", transition=fade)
    add "map/dog3.jpg"
   
screen dog4: #<--ภาพสุนัข ภาพที่ 4
    button clickedHide("dog4", transition=fade)
    add "map/dog4.jpg"

##########################################
#---รวมหน้า Screen ภาพของ...กระต่าย...แต่ละภาพ (มีทั้งหมด 4 ภาพ)
##########################################

screen bunny1: #<--ภาพกระต่าย ภาพที่ 1
    button clickedHide("bunny1", transition=fade)
    add "map/bunny1.jpg" #<---ใส่ชื่อหลอกไว้ จริงๆมันไม่มีภาพ (ยังไม่ได้ภาพหมาไว้)
   
screen bunny2: #<--ภาพกระต่าย ภาพที่ 2
    button clickedHide("bunny2", transition=fade)
    add "map/bunny2.jpg"
   
screen bunny3: #<--ภาพกระต่าย ภาพที่ 3
    button clickedHide("bunny3", transition=fade)
    add "map/bunny3.jpg"
   
screen bunny4: #<--ภาพกระต่าย ภาพที่ 4
    button clickedHide("bunny4", transition=fade)
    add "map/bunny4.jpg"

##########################################
#----รวมหน้า Screen ภาพของ...???(ตัวละครลับ)...แต่ละภาพ (มีทั้งหมด 4 ภาพ)--
##########################################

screen xxx1: #<--ภาพพิเศษ ภาพที่ 1
    button clickedHide("xxx1", transition=fade)
    add "map/xxx1.jpg" #<---ใส่ชื่อหลอกไว้ จริงๆมันไม่มีภาพ
   
screen xxx2: #<#<--ภาพพิเศษ ภาพที่2
    button clickedHide("xxx2", transition=fade)
    add "map/xxx2.jpg"
   
screen xxx3: #<--ภาพพิเศษ ภาพที่3
    button clickedHide("xxx3", transition=fade)
    add "map/xxx3.jpg"
   
screen xxx4: #<--ภาพพิเศษ ภาพที่4
    button clickedHide("xxx4", transition=fade)
    add "map/xxx4.jpg"
   
########################################
#-------------Gallery รวมภาพของ...หน้า Gallery กลุ่มแมว...------------
########################################

screen CG_Gallery_CAT:
    tag menu
    imagemap:
      ground 'menu/menu_gallery_ground_cat.png'
      idle 'menu/menu_gallery_idle_cat.png'
      hover 'menu/menu_gallery_hover_cat.png'
      selected_idle 'menu/menu_gallery_selected_idle_cat.png'
      selected_hover 'menu/menu_gallery_hover_cat.png'

      hotspot (607, 463, 193, 56) action Return() hover_sound "sound/click.wav"
      
      if persistent.group_image_cat_sum: #<กลุ่มภาพของ cat dog และ bunny ถูกปลดล๊อคครบ ภาพกลุ่มพิเศษ ???ก็ถึงจะถูกปลดล๊อค

            if persistent.group_image_dog_sum:
                if persistent.group_image_bunny_sum:
                  $ persistent.group_image_XXX_sum = True #<กลุ่มชุดรวมภาพ Gallery หน้าหลักของ XXX ถูกปลดล๊อค
            
      
      if persistent.group_image_XXX_sum: #<กลุ่มภาพของ ??? จะเปิดใช้ได้ก็ต่อเมื่อ เงื่อนไข persistent.group_image_XXX_sum เป็น True
            
            hotspot (607, 395, 193, 56) action ShowMenu("CG_Gallery_XXX") hover_sound "sound/click.wav"
      
      if persistent.group_image_bunny_sum: #<กลุ่มภาพของ BUNNY จะเปิดใช้ได้ก็ต่อเมื่อ เงื่อนไข persistent.group_image_bunny_sum เป็น True
            
            hotspot (607, 325, 193, 56) action ShowMenu("CG_Gallery_BUNNY") hover_sound "sound/click.wav"
      
      if persistent.group_image_dog_sum: #<กลุ่มภาพของ DOG จะเปิดใช้ได้ก็ต่อเมื่อ เงื่อนไข persistent.group_image_dog_sum เป็น True
            
            hotspot (607, 256, 193, 56) action ShowMenu("CG_Gallery_DOG") hover_sound "sound/click.wav"
      if persistent.group_image_cat_sum: #<กลุ่มภาพของ CAT จะเปิดใช้ได้ก็ต่อเมื่อ เงื่อนไข persistent.group_image_cat_sum เป็น True
            
            hotspot (607, 184, 193, 56) action ShowMenu("CG_Gallery_CAT") hover_sound "sound/click.wav"
            
            
            if persistent.group_image_cat_01:
                hotspot (75, 189, 208, 141) action Start(label ="cat1") #<เมื่อคลิกที่ภาพ cat1 สั่งให้วิ่งไปที่ label cat1
            
            if persistent.group_image_cat_02:
                hotspot (321, 189, 208, 141) action Show("cat2", transition=fade) #<เมื่อคลิกที่ภาพ cat2 สั่งให้วิ่งไปที่ screen cat2
            
            if persistent.group_image_cat_03:
                hotspot (75, 365, 208, 139) action Show("cat3", transition=fade)
            
            if persistent.group_image_cat_04:
                hotspot (321, 365, 211, 139) action Show("cat4", transition=fade)
               

##########################################
#-------------Gallery รวมภาพของ...หน้า Gallery กลุ่มสุนัข...-----------------
##########################################

screen CG_Gallery_DOG:
    tag menu
    imagemap:
      ground 'menu/menu_gallery_ground_cat.png'
      idle 'menu/menu_gallery_idle_cat.png'
      hover 'menu/menu_gallery_hover_cat.png'
      selected_idle 'menu/menu_gallery_selected_idle_cat.png'
      selected_hover 'menu/menu_gallery_hover_cat.png'

      hotspot (607, 463, 193, 56) action Return() hover_sound "sound/click.wav"
      
      if persistent.group_image_cat_sum: #<กลุ่มภาพของ cat dog และ bunny ถูกปลดล๊อคครบ ภาพกลุ่มพิเศษ ???ก็ถึงจะถูกปลดล๊อค
            if persistent.group_image_dog_sum:
                if persistent.group_image_bunny_sum:
                  $ persistent.group_image_XXX_sum = True #<กลุ่มชุดรวมภาพ Gallery หน้าหลักของ XXX ถูกปลดล๊อค
      
      if persistent.group_image_cat_sum: #<กลุ่มภาพของ CAT จะเปิดใช้ได้ก็ต่อเมื่อ เงื่อนไข persistent.group_image_cat_sum เป็น True
            
            hotspot (607, 184, 193, 56) action ShowMenu("CG_Gallery_CAT") hover_sound "sound/click.wav"
      
      if persistent.group_image_XXX_sum: #<กลุ่มภาพของ ??? จะเปิดใช้ได้ก็ต่อเมื่อ เงื่อนไข persistent.group_image_XXX_sum เป็น True
            
            hotspot (607, 395, 193, 56) action ShowMenu("CG_Gallery_XXX") hover_sound "sound/click.wav"
      
      if persistent.group_image_bunny_sum: #<กลุ่มภาพของ BUNNY จะเปิดใช้ได้ก็ต่อเมื่อ เงื่อนไข persistent.group_image_bunny_sum เป็น True
            
            hotspot (607, 325, 193, 56) action ShowMenu("CG_Gallery_BUNNY") hover_sound "sound/click.wav"
      
      if persistent.group_image_dog_sum: #<กลุ่มภาพของ DOG จะเปิดใช้ได้ก็ต่อเมื่อ เงื่อนไข persistent.group_image_dog_sum เป็น True
            
            hotspot (607, 256, 193, 56) action ShowMenu("CG_Gallery_DOG") hover_sound "sound/click.wav"
            if persistent.group_image_dog_01:
                hotspot (75, 189, 208, 141) action Show("dog1", transition=fade)
            
            if persistent.group_image_dog_02:
                hotspot (321, 189, 208, 141) action Show("dog2", transition=fade)
            
            if persistent.group_image_dog_03:
                hotspot (75, 365, 208, 139) action Show("dog3", transition=fade)
            
            if persistent.group_image_dog_04:
                hotspot (321, 365, 211, 139) action Show("dog4", transition=fade)
               
##########################################
#----------------Gallery รวมภาพของ...หน้า Gallery กลุ่มกระต่าย...-----------
##########################################

screen CG_Gallery_BUNNY:
    tag menu
    imagemap:
      ground 'menu/menu_gallery_ground_cat.png'
      idle 'menu/menu_gallery_idle_cat.png'
      hover 'menu/menu_gallery_hover_cat.png'
      selected_idle 'menu/menu_gallery_selected_idle_cat.png'
      selected_hover 'menu/menu_gallery_hover_cat.png'

      hotspot (607, 463, 193, 56) action Return() hover_sound "sound/click.wav"
      
      if persistent.group_image_cat_sum: #<กลุ่มภาพของ cat dog และ bunny ถูกปลดล๊อคครบ ภาพกลุ่มพิเศษ ???ก็ถึงจะถูกปลดล๊อค
            if persistent.group_image_dog_sum:
                if persistent.group_image_bunny_sum:
                  $ persistent.group_image_XXX_sum = True #<กลุ่มชุดรวมภาพ Gallery หน้าหลักของ XXX ถูกปลดล๊อค

      if persistent.group_image_cat_sum: #<กลุ่มภาพของ CAT จะเปิดใช้ได้ก็ต่อเมื่อ เงื่อนไข persistent.group_image_cat_sum เป็น True
            
            hotspot (607, 184, 193, 56) action ShowMenu("CG_Gallery_CAT") hover_sound "sound/click.wav"
      
      if persistent.group_image_XXX_sum: #<กลุ่มภาพของ ??? จะเปิดใช้ได้ก็ต่อเมื่อ เงื่อนไข persistent.group_image_XXX_sum เป็น True
            
            hotspot (607, 395, 193, 56) action ShowMenu("CG_Gallery_XXX") hover_sound "sound/click.wav"
      
      if persistent.group_image_bunny_sum: #<กลุ่มภาพของ BUNNY จะเปิดใช้ได้ก็ต่อเมื่อ เงื่อนไข persistent.group_image_bunny_sum เป็น True
            
            hotspot (607, 325, 193, 56) action ShowMenu("CG_Gallery_BUNNY") hover_sound "sound/click.wav"
      
      if persistent.group_image_dog_sum: #<กลุ่มภาพของ DOG จะเปิดใช้ได้ก็ต่อเมื่อ เงื่อนไข persistent.group_image_dog_sum เป็น True
            
            hotspot (607, 256, 193, 56) action ShowMenu("CG_Gallery_DOG") hover_sound "sound/click.wav"
      
            if persistent.group_image_bunny_01:
                hotspot (75, 189, 208, 141) action Show("bunny1", transition=fade)
            
            if persistent.group_image_bunny_02:
                hotspot (321, 189, 208, 141) action Show("bunny2", transition=fade)
            
            if persistent.group_image_bunny_03:
                hotspot (75, 365, 208, 139) action Show("bunny3", transition=fade)
            
            if persistent.group_image_bunny_04:
                hotspot (321, 365, 211, 139) action Show("bunny4", transition=fade)
               
##########################################
#-------------Gallery รวมภาพของ...หน้า Gallery กลุ่ม....???...--------------
##########################################

screen CG_Gallery_XXX:
    tag menu
    imagemap:
      ground 'menu/menu_gallery_ground_cat.png'
      idle 'menu/menu_gallery_idle_cat.png'
      hover 'menu/menu_gallery_hover_cat.png'
      selected_idle 'menu/menu_gallery_selected_idle_cat.png'
      selected_hover 'menu/menu_gallery_hover_cat.png'

      hotspot (607, 463, 193, 56) action Return() hover_sound "sound/click.wav"
      
      
      if persistent.group_image_cat_sum: #<กลุ่มภาพของ CAT จะเปิดใช้ได้ก็ต่อเมื่อ เงื่อนไข persistent.group_image_cat_sum เป็น True
            
            hotspot (607, 184, 193, 56) action ShowMenu("CG_Gallery_CAT") hover_sound "sound/click.wav"
      
      if persistent.group_image_XXX_sum: #<กลุ่มภาพของ ??? จะเปิดใช้ได้ก็ต่อเมื่อ เงื่อนไข persistent.group_image_XXX_sum เป็น True
            
            hotspot (607, 395, 193, 56) action ShowMenu("CG_Gallery_XXX") hover_sound "sound/click.wav"
      
      if persistent.group_image_bunny_sum: #<กลุ่มภาพของ BUNNY จะเปิดใช้ได้ก็ต่อเมื่อ เงื่อนไข persistent.group_image_bunny_sum เป็น True
            
            hotspot (607, 325, 193, 56) action ShowMenu("CG_Gallery_BUNNY") hover_sound "sound/click.wav"
      
      if persistent.group_image_dog_sum: #<กลุ่มภาพของ DOG จะเปิดใช้ได้ก็ต่อเมื่อ เงื่อนไข persistent.group_image_dog_sum เป็น True
            
            hotspot (607, 256, 193, 56) action ShowMenu("CG_Gallery_DOG") hover_sound "sound/click.wav"
            if persistent.group_image_xxx_01:
                hotspot (75, 189, 208, 141) action Show("xxx1", transition=fade)
            
            if persistent.group_image_xxx_02:
                hotspot (321, 189, 208, 141) action Show("xxx2", transition=fade)
            
            if persistent.group_image_xxx_03:
                hotspot (75, 365, 208, 139) action Show("xxx3", transition=fade)
            
            if persistent.group_image_xxx_04:
                hotspot (321, 365, 211, 139) action Show("xxx4", transition=fade)
</font>4. แล้วไปที่คำสั่ง File > Save... (หรือกดปุ่มCtrl+S) ให้บันทึกไฟล์นี้ในแฟ้มชื่อ game ในแฟ้มเกมส์ของเรา ตั้งชื่อไฟล์ว่าอะไรก็ได้ ได้หมด แต่สกุลจะต้องเป็น .rpyเท่านั้น เดี๋ยวโปรแกรมมันจะวิ่งหาไม่เจอ(อย่าลืมพิมพ์สกุล .rpy ต่อท้ายชื่อด้วยนะ)



ขั้นตอนที่ 5
- จากนั้นเราก็จะมาใส่โค๊ดที่ไฟล์script.rpy เพื่อปลดล๊อค หน้าเมนูหลักภาพ CG แต่ละตัวละคร และ CG ย่อยที่ซ่อนอยู่ภายในแต่ละภาพกันค่ะ
- ตัวอย่างการใส่โค๊ดที่ไฟล์ script.rpy


# Declare images below this line, using the image statement.
# eg. image eileen happy = "eileen_happy.png"
# Declare characters used by this game.

define p = Character('ปกิณกะ', color="#f8f092")


image cat1 = "map/cat1.jpg"
image cat2 = "map/cat2.jpg"
image cat3 = "map/cat3.jpg"
image cat4 = "map/cat4.jpg"
image cat5 = "map/cat5.jpg"
image cat6 = "map/cat6.jpg"

# เริ่มเกมส์
label start:
    scene black
    p "ในบรรดาสัตว์เลี้ยง อย่าง.. แมว สุนัข กระต่าย คุณชื่นชอบชนิดไหนเป็นพิเศษค่ะ?"
menu:
    "ฉันชอบแมวมากที่สุด":
      jump cat
      #jump input_screen
    "ฉันชอบสุนัขมากที่สุด":
      jump dog
      
    "ฉันชอบกระต่ายมากที่สุด":
      jump bunny
      
#ทางเลือกต่างๆ หลังจากคลิกเลือกคำตอบ
#------------------------เลือก Cat ข้อ 1. -------------------------
label cat:
    scene cat1
    $ persistent.group_image_cat_01 = True #<-----สั่งให้ภาพ cat1.jpg ที่หน้า CG_Gallery_CAT ถูกปลดล๊อค
    p "ฉันก็ชอบแมวเหมือนกันนะ...^^...."
    scene cat2
    $ persistent.group_image_cat_02 = True #<-----สั่งให้ภาพ cat2.jpg ที่หน้า CG_Gallery_CAT ถูกปลดล๊อค
    p "ฉันก็ชอบแมวเหมือนกันนะ...^^...."
   
    scene cat3
    $ persistent.group_image_cat_03 = True#<-----สั่งให้ภาพ cat3.jpg ที่หน้า CG_Gallery_CAT ถูกปลดล๊อค
    p "บางทีเราอาจจะมีนิสัยคล้ายๆกัน"
   
    $ persistent.group_image_cat_sum = True #<------กลุ่มชุดรวมภาพ Gallery หน้าหลักของ CAT ถูกปลดล๊อค
   
    $ persistent.extra_unlocked = True #สั่งให้ persistent.extra_unlocked = True (เป็นจริง)
                                                      #เปิดใช้งานหน้า Bonus
    #jump end_cat
   
#------------------------เลือก Dog ข้อ 2. -------------------------
label dog:
    scene cat4 #ไม่มีภาพหมา เอาภาพแมวไปก่อน -*-
   
    $ persistent.group_image_cat_04 = True#<-----สั่งให้ภาพ cat4.jpg ที่หน้า CG_Gallery_CAT ถูกปลดล๊อค
   
    $ persistent.group_image_dog_01 = True#<-----สั่งให้ภาพ dog1.jpg ที่หน้า CG_Gallery_CAT ถูกปลดล๊อค
   
    $ persistent.group_image_dog_sum = True #<------กลุ่มชุดรวมภาพ Gallery หน้าหลักของ DOG ถูกปลดล๊อค
   
    p "ที่บ้านฉันเลี้ยงสุนัขไว้ 2 ตัวเป็นพันธุ์ชิวาว่าล่ะ .. :D... "
   
    $ persistent.extra_unlocked = True #สั่งให้ persistent.extra_unlocked = True (เป็นจริง)
                                                      #เปิดใช้งานหน้า Bonus
    #jump end_dog
#------------------------เลือก Bunny ข้อ 3. -------------------------
label bunny:
    scene cat1 #ไม่มีภาพกระต่าย เอาภาพแมวไปก่อน -*-

    $ persistent.group_image_bunny_01 = True #<-----สั่งให้ภาพ bunny1.jpg ที่หน้า CG_Gallery_CAT ถูกปลดล๊อค


    p "ฉันเคยเลี้ยงกระต่ายไว้ที่บ้าน มันน่ารักมาก แต่มันก็มีนิสัยเสียตรงที่ชอบกัดสายไฟ -*- "

    $ persistent.group_image_bunny_sum = True #<------กลุ่มชุดรวมภาพ Gallery หน้าหลักของ BUNNY ถูกปลดล๊อค

    $ persistent.extra_unlocked = True #สั่งให้ persistent.extra_unlocked = True (เป็นจริง)
                                                      #เปิดใช้งานหน้า Bonus
    #jump end_bunny
returnตัวอย่างการใส่โค๊ด....และการสร้างเงื่อนไข

ที่ไฟล์ bonus จะเห็นว่าเรากำหนดโค๊ดเงื่อนไขเพื่อล๊อคภาพไว้ว่า
    if persistent.group_image_cat_sum: #<----ชื่อด้านหลังเราจะกำหนดว่าอะไรก็ได้ขอเพียงให้มีคำว่า "if persistent." นำหน้ามันก็จะกลายเป็นการสร้างเงื่อนไขล๊อคภาพนั้นไว้ทันที

และเพื่อให้ภาพนั้นถูกปลดล๊อค (เป็น True) เราจำเป็นต้องใส่โค๊ดปลดล๊อคไว้ที่ไฟล์ script.rpy ด้วยไม่งั้นภาพต่างๆก็จะยังถูกล๊อคไว้ตลอดกาล ไม่แสดง และไม่สามารถคลิกเข้าไปดูได้การปลดล๊อคก็เพียงกำหนดให้เงื่อนไขมีค่าเท่ากัน True แค่นั้นเอง
    $ persistent.group_image_cat_sum= True

***ถ้ามีภาพ CGใน Gallery 16 ภาพ เมื่อสร้างเงื่อนไขล๊อคครบ 16ภาพแล้ว อย่าลืมใส่โค๊ดเพื่อปลดล๊อคทั้ง 16 ภาพเอาไว้ด้วยนะค่ะ

เมื่อทำตามขั้นตอนทั้งหมดแล้วก็ลองรันโปรแกรมเพื่อTest โค๊ดคำสั่งต่างๆดูหลายๆรอบเพื่อความแน่ใจในขั้นตอนนี้ ข้าพเจ้าเองลองรันโปรแกรมหลายรอบแล้ว โค๊ดตัวคำสั่งทั้งหมด ยังไม่พบ Errorใดๆ มันจะติด Error อยู่อย่างเดียวคือภาพกลุ่ม dog.jpg,bunny.jpg , xxx.jpg ทั้งหมดไม่มี(ขี้เกียจหามาใส่) ถ้าไปเผลอคลิกเข้าโปรแกรมจะเด้ง นอกนั้นก็ไม่มีอะไรรันโปรแกรมได้ตามปกติค่ะ

------------------------------------------------------------------------

นอกจากนี้ จากโค๊ดทั้งหมดจะเห็นว่าข้าพเจ้าได้กำหนดให้มีภาพ CG ของตัวละครลับ(xxx)เพิ่มขึ้นมาด้วย โดยภาพของตัวละครลับนี้ข้าพเจ้ากำหนดให้มันถูกปลดล๊อคได้ก็ต่อเมื่อ หน้าหลักGalleryของcat dog bunny ถูกปลดล๊อคทั้ง 3 หน้าแล้ว(ที่มีคำว่า sum ต่อท้ายคือหน้ากาก Gallery หลักของแต่ละตัวละคร) (ซึ่งก็ไม่จำเป็นว่า ภาพ CG01 ,02 ,03, 04 ฯลฯ ทุกภาพจะต้องถูกปลดผนึกจนครบ)

จากภาพด้านล่างเมื่อภาพใดถูกปลดล๊อค ตรงปุ่มจะมีไฟสีเขียวแสดงอยู่นั่นแสดงว่าเราสามารถคลิกเข้าไปดูกลุ่มภาพ CG ข้างในได้ และเมื่อ Gallery ของ cat dog และ bunny ถูกล๊อคแล้วก็จะส่งผลให้ xxx(???) ถูกปลดล๊อคตามด้วยเช่นกัน





(คลิกเข้าไปดูแต่ละภาพ)




อัพโหลดไฟล์ตัวอย่างที่ใช้สอนในประกอบบทความ
ปล. จะเอาภาพหน้าหลัก Gallery ของตัวละครตัวไหนขึ้นเป็นหน้าแรกก่อนก็ได้ค่ะแล้วแต่เราจะเป็นผู้กำหนด ยกเว้นภาพตัวละครลับ

***************************************

บทความโดย นุ้ก
ขอจบบทความแค่เพียงเท่านี้ แล้วพบกันใหม่บทความหน้าค่ะ ^^
(ขอสงวนสิทธิ์อนุญาตให้เผยแพร่เฉพาะในเว็บ www.graphicfufu.comเท่านั้น)
หน้า: [1]
ดูในรูปแบบกติ: [Renpy] 25. วิธีทำ CG Gallery แบบ Imagemap