|
แก้ไขครั้งสุดท้ายโดย nooknazha เมื่อ 2018-6-22 17:56
[Renpy] 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เท่านั้น)
|
|