nooknazha โพสต์ 2018-6-22 17:55:00

[Renpy] 35. วิธีทำตัวเลือกคำถามแบบกำหนดระยะเวลา (Timed choice)

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



35. วิธีทำตัวเลือกคำถามแบบกำหนดระยะเวลา (Timedchoice)
เพื่อให้เกมส์มีอรรถรสมากยิ่งขึ้นสำหรับเกมส์แนวเนื้อเรื่องบางสถานะการณ์ก็มีความจำเป็นที่จะต้องให้ผู้เล่นมีความรู้สึกกดดัน เมื่อถูกตัวละครตัวใดตัวหนึ่งตั้งคำถาม ซึ่งถ้าหากผู้เล่นตอบช้า หรืออาจจะไม่คลิกตอบเลยก็จะเป็นการกำหนดให้ตัวละครในเกมส์มีปฏิสัมพันธ์ต่อผู้เล่นแตกต่างกันออกไป
เราจะแบ่งรูปแบบการกำหนดระยะเวลาได้ออกเป็น 2 กรณีเช่น
1. แบบไม่บอกให้ผู้เล่นรู้ตัว

init:

    $ e = Character('NOOKFUFU2', color="#c8ffc8")

label start:
    $ ui.timer(5.0, ui.jumps("menu1_slow")) #<-- 5.0 หมายถึงให้เวลาคิด 5 วินาที
    menu:
      "Choice 1":
            hide countdown
            e "เลือก 'Choice 1'"
            jump menu1_end
      "Choice 2":
            hide countdown
            e "เลือก 'Choice 2'"
            jump menu1_end
   
label menu1_slow:
    hide countdown
    e "ทำไมถึงไม่ตอบ?"
   
label menu1_end:
    e "อย่างน้อยคุณก็เลือกที่จะตอบ"

return
ผลลัพธ์ที่ได้.....

ถ้าผู้เล่นไม่คลิกเลือกคำตอบ ภายในเวลาที่กำหนด โปรแกรมก็จะวิ่งมาที่ label menu1_slow ตามที่เราตั้งไว้


2. แบบแสดงตัวเลขเพื่อให้ผู้เล่นรู้ และรีบเลือกคำตอบ

init:

    # สร้างตัวแประของตัวละคร
    $ e = Character('NOOKFUFU2', color="#c8ffc8")
   
init:
    python:

      def countdown(st, at, length=0.0):

            remaining = length - st

            if remaining > 2.0:
                return Text("%.1f" % remaining, color="#ffffff", size=72 , bold = True ), .1 #<----ถ้าตัวเลขมากว่า 2.0 ให้แสดงสี text เป็น "สีขาว"
            elif remaining > 0.0:
                return Text("%.1f" % remaining, color="#ff0000", size=72, bold = True), .1#<----ถ้าตัวเลขต่ำกว่า 2.0 และไม่เท่ากับ 0.0 ให้แสดงสี text เป็น "สีแดง"
            else:
                return anim.Blink(Text("0.0", color="#ff0000", size=72, bold = True)), None #<--- ถ้าตัวเลขเท่ากับ 0.0 ให้แสดงสี Text เป็น "สีแดง" และแสดงเป็นตัวแบบกระพริบ

    # แสดงตัวเลข เริ่มนับถอยหลังที่ 10 วินาที.
    image countdown = DynamicDisplayable(countdown, length=10.0)#<---ตัวเลขเริ่มต้นจาก 10.0 วินาที และนับถอยหลังลงมาเรื่อยๆ
   
label start:
    $ ui.timer(10.0, ui.jumps("not_choice")) #<---ให้เวลา 10.0 วินาที
    show countdown at Position (xalign = 0.3, yalign = 0.1)
    menu:
      "เลือกคำตอบข้อ 1ทันที":
            hide countdown
            e "You chose 'Choice 1' fast"
            jump menu1_end
      "เลือกคำตอบข้อ 2 ทันที":
            hide countdown
            e "You chose 'Choice 2' fast"
            jump menu1_end
return


label not_choice:
    hide countdown
    e "ทำไมนายถึงไม่ยอมตอบคำถามฉัน?"
    e "ฉันจะให้โอกาสนายตอบคำถามฉันอีกครั้ง"

    $ ui.timer(10.0, ui.jumps("not_choice_slow")) #<---ให้เวลา 10.0 วินาที
    show countdown at Position (xalign = 0.3, yalign = 0.1)
    menu:

      "เลือกคำตอบข้อ 1":
            hide countdown
            e "คุณเลือกข้อ 1 แบบลังเล"
            jump menu2_end
      "เลือกคำตอบข้อ 2":
            hide countdown
            e "คุณเลือกข้อ 2 แบบลังเล"
            jump menu2_end

label not_choice_slow:
    hide countdown
    e "ฉันไม่เคยเจอใครที่เฉื่อยชาเท่าคุณอีกแล้ว"
    return
label menu1_end:
    e "อย่างน้อยนายก็ยอมตอบคำถามฉัน"
    return
label menu2_end:
    e "อย่างน้อยนายก็ยอมตอบคำถามฉัน"
    return
ผลลัพธ์ที่ได้.....

ส่วนแบบอื่นก็แล้วแต่จะไปประยุกต์เอาเองนะค่ะ ^^"

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

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


หน้า: [1]
ดูในรูปแบบกติ: [Renpy] 35. วิธีทำตัวเลือกคำถามแบบกำหนดระยะเวลา (Timed choice)