[Renpy] 35. วิธีทำตัวเลือกคำถามแบบกำหนดระยะเวลา (Timed choice)
แก้ไขครั้งสุดท้ายโดย nooknazha เมื่อ 2018-6-22 17:5635. วิธีทำตัวเลือกคำถามแบบกำหนดระยะเวลา (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]