nooknazha โพสต์ 2018-6-22 18:15:38

[Renpy] 38. วิธีแสดงคะแนนตัวเลขให้เป็น Image

แก้ไขครั้งสุดท้ายโดย nooknazha เมื่อ 2018-6-22 18:17


38. วิธีแสดงคะแนนตัวเลขให้เป็น Image
การทำงานของโค๊ดคือ คุณจะต้องสร้างตัวแปรแทนค่าหลักสิบและัตวแปรแทนค่าหลักหน่วยขึ้นมาเพื่่อให้มันทำหน้าที่ดึงภาพตัวเลขแต่ละตัวขึ้นมาแสดงให้ถูกต้องค่ะ(ในกรณีถ้าระดับคะแนนเต็มที่ค่าหลักร้อย ก็ต้องสร้างตัวแปรแทนค่าหลักร้อยขึ้นมาด้วยเช่นกันค่ะ)

อย่างแรกเลยคือต้องสร้างภาพตัวเลขขึ้นมาก่อนโปรแกรมที่ใช้สร้างก็มีหลายโปรแกรมนะคะ แต่ที่นิยมใช้กันมากที่สุดก็โปรแกรม Photoshop(ภาพตัวเลขต้องบันทึกเป็นไฟล์ .PNG และควรให้พื้นหลังเป็นแบบโปร่งใสนะคะ)

- แล้วก็บันทึกไฟล์โดยแยกเป็นภาพละตัวเลข (มีตัวอย่างโค๊ดเกมส์และภาพตัวเลขให้โหลดที่ลิงค์ด้านล่างค่ะ)

- จากนั้นให้นำโค๊ดด้านล่างนี้ไปใส่ที่ล่างสุดของไฟล์ options.rpyนะคะ
CODE:


init:
    $ score_heart = 0
    $ show_score = True
   
    ##สร้างตัวแปรเพื่อนำ score_heart มาคำนวณหาผลลัพธ์
    $ num_two = 0#num_two (แทนเลขหลักสิบ)
    $ num_one = 0# num_one (แทนเลขหลักหน่วย)

    python hide:
      def score_heart():
            if show_score:

                if score_heart <= 25:

                  ui.image("image/l.png",xalign=0.85, yalign=0.06)
                  ui.image("image/2.png",xalign=0.90, yalign=0.06)
                  ui.image("image/5.png",xalign=0.95, yalign=0.06)


                #-------------------num_two หาตัวเลขแทนเลขหลักสิบ----------------#   
                  if num_two == 1:
                         ui.image("image/1.png",xalign=0.75, yalign=0.06)
                  if num_two == 2:
                         ui.image("image/2.png",xalign=0.75, yalign=0.06)
                  if num_two == 3:
                         ui.image("image/3.png",xalign=0.75, yalign=0.06)
                  if num_two == 4:
                         ui.image("image/4.png",xalign=0.75, yalign=0.06)
                  if num_two == 5:
                         ui.image("image/5.png",xalign=0.75, yalign=0.06)
                  if num_two == 6:
                         ui.image("image/6.png",xalign=0.75, yalign=0.06)
                  if num_two == 7:
                         ui.image("image/7.png",xalign=0.75, yalign=0.06)
                  if num_two == 8:
                         ui.image("image/8.png",xalign=0.75, yalign=0.06)
                  if num_two == 9:
                         ui.image("image/9.png",xalign=0.75, yalign=0.06)

                        
                #-------------------num_one หาตัวเลขแทนเลขหลักหน่วย----------------#
                  
                  if num_one == 1:
                         ui.image("image/1.png",xalign=0.80, yalign=0.06)
                  if num_one == 2:
                         ui.image("image/2.png",xalign=0.80, yalign=0.06)
                  if num_one == 3:
                         ui.image("image/3.png",xalign=0.80, yalign=0.06)
                  if num_one == 4:
                         ui.image("image/4.png",xalign=0.80, yalign=0.06)
                  if num_one == 5:
                         ui.image("image/5.png",xalign=0.80, yalign=0.06)
                  if num_one == 6:
                         ui.image("image/6.png",xalign=0.80, yalign=0.06)
                  if num_one == 7:
                         ui.image("image/7.png",xalign=0.80, yalign=0.06)
                  if num_one == 8:
                         ui.image("image/8.png",xalign=0.80, yalign=0.06)
                  if num_one == 9:
                         ui.image("image/9.png",xalign=0.80, yalign=0.06)
                  if num_one == 0:
                         ui.image("image/0.png",xalign=0.80, yalign=0.06)
                        
      config.overlay_functions.append(score_heart)

- ต่อไปก็ให้นำโค๊ดด้านล่างนี้ไปใส่ที่ไฟล์ script.rpy ค่ะ
CODE:
label start:
    scene black
#คำถามที่ 1
menu:
    b "พยัญชนะในภาษาอังกฤษตัว \"ph\" เมื่อออกเสียง ผสมกัน
      ในภาษาไทยจะเท่ากับพยัญชนะตัวอะไร ?"
   
    "ออกเสียงเป็นตัว ช.ช้าง":
      pass
    "ออกเสียงเป็นตัว ฟ.ฟัน":
      $ score_heart += 5
      $ num_two = score_heart // 10
      $ num_one = score_heart - (num_two *10)
      pass
    "ออกเสียงเป็นตัว พ.พาน และ ฮ.นกฮูก":
      pass
   
#คำถามที่ 2
menu:
    b "พยัญชนะในภาษาอังกฤษตัว \"aew\" เมื่อออกเสียง ผสมกัน
      ในภาษาไทยจะเท่ากับสระตัวอะไร ?"
   
    "สระ เ-" :
      $ score_heart -= 10
      ifscore_heart <= 0:
            $ score_heart = 0
      pass
    "สระ แ-ว ":
      $ score_heart += 10
      $ num_two = score_heart // 10
      $ num_one = score_heart - (num_two *10)
      pass
    "สระ แ- ":
      $ score_heart -= 10
      ifscore_heart <= 0:
            $ score_heart = 0
      pass
   
#คำถามที่ 3 (คำถามสุดท้าย)
menu:
    b "พยัญชนะในภาษาอังกฤษตัว \"oei\" เมื่อออกเสียง ผสมกัน
    ในภาษาไทยจะเท่ากับสระตัวอะไร ?"
   
    "สระ ไ- ":
      $ score_heart -= 10
      ifscore_heart <= 0:
            $ score_heart = 0
      jump score
    "สระ เ-า":
      $ score_heart -= 10
      ifscore_heart <= 0:
            $ score_heart = 0
      jump score
      
    "สระ เ-ย":
      $ score_heart += 10
      $ num_two = score_heart // 10
      $ num_one = score_heart - (num_two *10)
      jump score
#---------สรุปผล--------------------
label score:
   
    b "คุณได้ คะแนน!!!"

return
(ผลลัพธ์หลังเทสเกมส์คะแนนจะแสดงออกมาเป็นภาพตัวเลขสวยสดใสน่าดูกว่าตัวอักษรแข็งๆเป็นไหนๆ)

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

บทความโดย นุ้ก
ขอจบบทความแค่เพียงเท่านี้ แล้วพบกันใหม่บทความหน้าค่ะ ^^
(ขอสงวนสิทธิ์อนุญาตให้เผยแพร่เฉพาะในเว็บ www.graphicfufu.comเท่านั้น)


หน้า: [1]
ดูในรูปแบบกติ: [Renpy] 38. วิธีแสดงคะแนนตัวเลขให้เป็น Image