Thaigraph

 

   

ค้นหา
Thaigraph หน้าฟอรั่ม Ren'Py [renpy] วิธีทำตัวเลือก Choices แบบ ...
ดู: 2652|ตอบ: 5
go

[renpy] วิธีทำตัวเลือก Choices แบบจดจำ (Remembering User Choices )

Rank: 7Rank: 7Rank: 7

โพสต์เมื่อ 6-5-2013 20:11 |แสดงโพสต์ทั้งหมด
[renpy] วิธีทำตัวเลือก Choices แบบจดจำ (Remembering User Choices )


จากที่มีสมาชิกสอบถามไว้นะค่ะ


"....เรื่องการทำ route ของคำตอบที่ส่งผลภายระยะยาวน่ะครับ กรณีทำเป็นเกม อาทิเช่น ตอน event 1  มีตัวเลือก a b c แล้ว เช่นกรณีถ้าตอบ c จะส่งผลต่อ route ในภายหลังที่ไกลมากๆ
event 2-49 ไม่มีผลอะไร
พอตอน event 50 ถ้าเกิดเคยตอบC ที่ event 1 ก็จะทำให้มีตัวเลือก a b c "d" เพิ่มขึ้นมา (มีตัวเลือกแสดง 4 ตัวเลือก)
(ถ้าตอบข้อa หรือb ในevent 1 มาถึงฉากนี้event 50จะมีchoice ให้แค่ a b c ครับ)......"
-----------------------------------------------------------------------




ไม่แน่ใจว่าบทความนี้จะตรงกับที่ต้องการหรือเปล่า แต่เอาเป็นว่ามาดูวิธีทำกันค่ะ ^^"
สร้างตัวแปรขึ้นมาเพื่อให้โปรแกรมจดจำว่า ผู้เล่นได้เคยเลือกทางเลือกข้อใดไว้ ตัวอย่างเช่น
ตัวอย่าง CODE:
  1. init:
  2.     # สร้างตัวแประของตัวละคร
  3.     $ e = Character('NOOKFUFU2', color="#c8ffc8")
  4.     $ b = Character('วัฏฏะ', color="#c8ffc8")
  5. label start:
  6.     e " even 1 "
  7.     menu:
  8.         e "นี่...! summer นี้พวกเราจะไปเที่ยวที่ไหนกันดี?"
  9.         "ไปเล่นน้ำที่เกาะสมุย":
  10.             $ summer = "samui"
  11.             b "ดีเลย! ฉันชอบทะเล"
  12.             pass
  13.         
  14.         "ไปเที่ยวเชียงใหม่":
  15.             $ summer = "chiang mai"
  16.             b "ดีเลย! ฉันเองก็กำลังหาเพื่อนไปเที่ยวด้วยกันอยู่"
  17.             pass
  18.         
  19.         "สวนสัตว์เขาใหญ่":
  20.             $ summer = "khao_yai"
  21.             b "ขอไปด้วยสิ! ครั้งสุดท้ายที่ฉันไปเที่ยวสวนสัตว์ ก็สมัยเรียนประถมโน้นแน่ะ"
  22.             pass
  23.         
  24.     e " even 2-49 ผ่านไป "
  25.    
  26.    
  27. menu:
  28.      e "นี่...! วันหยุดที่จะถึงนี้ เธอมีโปรแกรมจะไปเที่ยวไหนไหม?"
  29.      "ไปเที่ยวสวนสนุกเปิดใหม่ใกล้บ้าน":
  30.           jump park_date
  31.      "ไปเดินห้างตากแอร์แก้ร้อน":
  32.           jump cafe_date
  33.      "ไปเที่ยวเกาะสมุยอีกครั้ง" if summer == "samui":#<---ถ้าที่ even 1 เลือกคำตอบข้อ 1 ( "samui" ) ช้อยข้อนี้ถึงจะปรากฏ
  34.           jump samui_date

  35. return
คัดลอกไปที่คลิปบอร์ด

ลองบันทึกไฟล์และรันโปรแกรม....

เมื่อเริ่มเกมส์ที่ even 1 จะมี 3 คำถามให้เลือก ลองเลือกข้อ 1 ซึ่งเราสร้างตัวแปรก่อน


เมื่อดำเนินเกมส์ไปเรื่อยๆจนมาถึง even ที่ 50 จะมีคำถามมาให้ผู้เลือกคำตอบอีกครั้ง เราจะเห็นว่า มีทางเลือกให้ผู้เล่นเลือกตอบได้ 3 ข้อ (เพราะเงื่อนไขถูกต้อง)


คราวนี้ลองปิดโปรแกรมไปก่อนและ รันโปรแกรมใหม่อีกครั้ง ที่ even ให้ลองเลือกคำตอบข้อ 2 หรือ 3



และเมื่อดำเนินเนื้อเรื่องเกมส์มาเรื่อยๆ จนถึง even ที่ 50 ผู้เล่นก็จะเจอคำถามที่ต้องเลือกคำตอบอีกครั้ง แต่ครั้งนี้ ผู้เล่นจะเจอทางเลือกให้เลือกแค่ 2 ข้อเท่านั้น (เพราะเงื่อนไขทางเลือกข้อที่ 3 ไม่ถูกต้อง มีผลมาจาก even ที่1 ที่ผู้เล่นเลือกคำตอบไว้ผิดพลาด)



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

ต่อเนื่องจากโค๊ดด้านบนนะค่ะ เราสามารถกำหนดให้ตัวละครแสดงปฏิกิริยาการโต้ตอบแตกต่างกัน เมื่อผู้เล่นเลือกแต่ละคำตอบแล้ว เช่น....
  1.     e " summer นี้เธอจะไปเที่ยวกับฉันไหม?"
  2.     if summer == "samui":
  3.         b "ไปแน่นอน ทะเลคือสิ่งที่ฉันชอบ"
  4.     if summer == "chiang mai":
  5.         b "ถ้าเธออยากไป ฉันจะไปเป็นเพื่อนด้วยก็ได้"
  6.     if summer == "khao_yai":
  7.         m "ขอโทษนะ พอดีฉันมีธุระ คงไปด้วยไม่ได"
คัดลอกไปที่คลิปบอร์ด
-----------------------------------------------------------------------


อีกตัวอย่างหนึ่งในกรณีที่นำเงื่อนไขคำสั่ง True  และ False มาใช้ผสมกันก็ได้ เช่น


กำหนดตัวแปรไว้ตั้งแต่เริ่มเกมส์ที่ label start
  1. $ park_date_done = False
  2. $ cafe_date_done = False
  3. $ tortoise_date_done = False
คัดลอกไปที่คลิปบอร์ด

และนำตัวแปรมาใช้ร่วมกับการถาม-ตอบ

  1. label date_choice:

  2.      b "คุณอยากจะไปเที่ยวที่ไหน?"

  3.      menu:
  4.           "ฉันอยากไปสวนสาธารณะ!" if park_date_done == False:
  5.                $ park_date_done = True
  6.                jump park_date
  7.           "ฉันอยากไปนั่งเล่นที่ร้านกาแฟ!" if cafe_date_done == False:
  8.                $ cafe_date_done = True
  9.                jump cafe_date
  10.           "เราไปขับรถ racing กันดีไหม?" if gift == "tortoise":
  11.                jump tortoise_racing
  12.           "ฉันจะกลับบ้าน" if park_date_done ==True:
  13.                jump date_over

  14. label park_date:
  15.      b "มาถึงสวนสาธารณะซะที"
  16.      m "เราจะไปนั่งที่ตรงไหนกันดี?"
  17.      jump date_choice

  18. label cafe_date:
  19.      m "ว้า...ร้านกาแฟปิด!"
  20.      jump date choice  

  21. label tortoise_date:   
  22.      m "มันสนุกมากจริงๆ!"
  23.      b "ใช่ไหมล่ะ?
  24.      jump date_choice

  25. label date_over:
  26.      "..คุณทำนั่งเล่นบนโซฟาและเปิดโทรทัศน์ดูอย่างเพลินเพลิน.."
คัดลอกไปที่คลิปบอร์ด

หากต้องการดูบทความอื่นที่เกียวข้อง

- [renpy] วิธี เพิ่ม- ลด คะแนนคำถาม (Score Question) แบบแยกหน้าแสดง  
- [renpy] วิธี เพิ่ม- ลด คะแนนคำถาม (Score Question) แบบแสดงคะแนนที่หน้าหลัก)

ลองนำไประยุกต์ดูนะค่ะ

บทความโดย NOOKFUFU2
(ขอสงวนสิทธิ์ให้เผยแพร่เฉพาะในเว็บไทยกราฟเท่านั้น!!!)



ไฟล์แนบ: คุณจำเป็นต้องเข้าสู่ระบบก่อนจึงจะสามารถดูและดาวน์โหลดไฟล์แนบได้ หากยังไม่มีแอคเคานต์หรือยังไม่ได้เป็นสมาชิก กรุณาสมัครสมาชิก
บางบทความคุณจำเป็นต้องสมัครสมาชิกแบบ VIP และ SUPERVIP ถึงจะเข้าอ่านบทความได้

Rank: 1

โพสต์เมื่อ 8-5-2013 13:55 |แสดงโพสต์ทั้งหมด
"ใช่ที่ต้องการ"เลยครับผม

ขอบคุณคุณ nookfufu มากๆครับ รอบทความต่อๆไปนะครับผม^^

Rank: 1

โพสต์เมื่อ 20-12-2014 00:17 |แสดงโพสต์ทั้งหมด
สอบถามค่ะๆ คือแบบสามารถดึงคะแนนจาก label อื่นได้ไหมค่ะ แบบ label ก่อนหน้านี้เราตอบคำถามไป แล้วสัง jump ไปเพื่อต่อเหตุการต่อไป ผ่านไปสักพัก เรายังสามารถใช่คะแนนนั้นได้ไหมค่ะ

Rank: 1

โพสต์เมื่อ 27-10-2015 01:25 |แสดงโพสต์ทั้งหมด
ขอบคุณค่ะ

Rank: 7Rank: 7Rank: 7

โพสต์เมื่อ 29-10-2015 14:01 |แสดงโพสต์ทั้งหมด
ตอบกระทู้ shiki13 ตั้งกระทู้

ในบทความนี้ยังไม่มีการนำค่าคะแนนตัวเลขมาใช้นะค่ะ  มีแต่แบบที่ค่าตัว Text  ถ้าถามว่าค่าพวกนี้ใช้ร่วมกันระหว่าง Label ได้ไหม คำตอบคือใช้ร่วมกันได้ค่ะ

Rank: 1

โพสต์เมื่อ 26-12-2015 04:28 |แสดงโพสต์ทั้งหมด
นี้เเหละคือสิงที่ข้าตามหามานาน
ขอบคุณมากครับ
คุณต้องเข้าสู่ระบบก่อนจึงจะสามารถตอบกลับ เข้าสู่ระบบ | สมัครสมาชิก


Thaigraph

GMT+7, 22-9-2019 07:03 , Processed in 0.131117 second(s), 20 queries .

Powered by Discuz! X1.5

© 2001-2010 Comsenz Inc. Thai Language by DiscuzThai! Team.

Top 10 Best Sellers in Clothing for 2017 Top 10 Best Sellers in Clothing Best Sellers in Clothing
Top 10 Best Sellers in Books reviewer 2017 Top 10 Best Sellers in Books Best Sellers in Books