บทความสอนกราฟิก

 ลืมรหัสผ่าน
 ลงทะเบียน
ค้นหา
ดู: 2469|ตอบกลับ: 0

[Renpy] 12. การ Input Name User (รับค่าตัวแปร ชื่อผู้เล่น)

[คัดลอกลิงก์]

272

กระทู้

272

โพสต์

979

เครดิต

ผู้ดูแลระบบ

Rank: 9Rank: 9Rank: 9

เครดิต
979
แก้ไขครั้งสุดท้ายโดย nooknazha เมื่อ 2018-5-23 21:03

[renpy] 12. การInput Name User (รับค่าตัวแปร ชื่อผู้เล่น)

สำหรับโค๊ดที่ใช้ input ชื่อผู้เล่นจะเขียนได้หลายแบบนะค่ะ คงไม่ยกมาทั้งหมดเพราะแล้วแต่ว่าจะเขียนแบบไหนมันพลิกแพลงได้


ตัวอย่างแรกกำหนดตัวแปรที่จะ input ชื่อผู้เล่นให้เป็นแบบ DynamicCharacter(ชื่อคาแรคเตอร์สามารถแก้ไขเปลี่ยนแปลงได้)
  1. #ประกาศตัวแปร ตัวละคร
  2. define k = DynamicCharacter('player_name', color="#ff0000")
คัดลอกไปที่คลิปบอร์ด

ตรงค่ำว่า player_name เราจะตั้งชื่อว่าอะไรก็ได้ตัวแปรนี้จะถูกนำมาใช้อ้างอิงในคำสั่ง input ต่อจาก Labelstart ไปแล้วค่ะ ดูคำสั่งต่อไปกันเลย
  1. # เริ่มเกมส์

  2. label start:
  3.    #
  4.     $ player_name = renpy.input("(กรุณาพิมพ์ชื่อของคุณ และกดปุ่ม Enter)")
  5.     $ player_name = player_name.strip()
  6.      
  7. #ใช้ตรวจเช็คว่าได้พิมพ์ชื่อลงไปหรือไม่
  8.     if player_name == "":
  9.         $ player_name= "วิชชุดา" #ถ้าผู้เล่นไม่ยอมพิมพ์ชื่อ โปรแกรมจะตั้งชื่อว่า วิชชุดา ให้แทน
  10.         
  11.     "ชื่อของฉันคือ  [player_name]!!"
  12.     return
คัดลอกไปที่คลิปบอร์ด

จากตัวอย่างข้างบน เราจะกำหนดเงื่อนไข เพื่อเช็คว่าถ้า ผู้เล่นหรือ User ไม่ยอมพิมพ์ชื่อใดๆลงไปปล่อยให้เป็นช่องว่าง โปรแกรมจะตั้งชื่อ...ให้แทนอัตโนมัติ

อีกตัวอย่างค่ะ
  1. define k = DynamicCharacter('player_name', color="#ff0000")

  2. label start:

  3. $ player_name = renpy.input("กรุณาบอกชื่อของคุณด้วยค่ะ?", "วิชชุดา", length=20)

  4. "ชื่อของฉันคือ  %(player_name)s."   

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

อันนี้เราจะกำหนดชื่อมาให้เลยถ้าจะใช้ชื่อวิชชุดาก็ให้กดปุ่ม Enterผ่านไป ถ้าแต่อยากเปลี่ยน ก็ลบทิ้งและพิมพ์ชื่อใหม่ลงไปแทน ค่ะ
ตรง...

"length=20" หมายถึงจำนวนตัวอักษรที่จะพิมพ์คำลงไปได้ ไม่ให้เกินกว่านี้

และตรง...
  1. "ชื่อของฉันคือ %(player_name)s."
คัดลอกไปที่คลิปบอร์ด

จะเป็นคำสั่งที่จะให้แสดงชื่อของตัวผู้เล่น หรือชื่อของตัวละครอื่นในเกมส์ตัวอักษร "S" ต่อท้ายมีความหมายว่า ตัวแประนี้เป็นประเภท String(Text ข้อความ ตัวอักษรและพยัญชนะ ที่ไม่สามารถนำมาคำนวณค่าทางคณิตศาสตร์ได้)ค่ะ

ว่าแล้วก็ลองทำเลยล่ะกัน อยากใส่อะไรเพิ่มอะไร ก็ใส่ไปโล๊ด(คำสั่งต่างๆ อย่างใส่เพลง ใส่ภาพ มีอธิบายในบทความก่อนหน้าแล้วนะค่ะ )

input_user01.jpg
บันทึกไฟล์ แล้วรันโปรแกรมดูผลลัพธ์กัน

input_user02.jpg
มันจะเป็นช่องว่างมาแบบนี้ค่ะ ให้ผู้เล่นพิมพ์ชื่อที่ต้องการลงไป

input_user03.jpg
เอาชื่อตัวเองนี่แหล่ะ หุหุ และกดปุ่ม Enter
input_user04.jpg


ปล. สมัยที่เรียน ปวช. ก็เคยมีความคิดว่าอยากจะทำเกมส์แบบนี้อยู่เหมือนกันแต่หาคนสอนไม่ได้ กดเก็บๆๆๆ

แต่ทว่าในปัจจุบันกลับกลายเป็นว่าทำได้... แต่... 1. ไม่ค่อยมีเวลา 2. ขี้เกียจเขียนบท 3.ไม่รู้จะทำไปทำไม -*- แป่ว

คือมันต้องใช้เวลามากในการทำถ้าเราจะทำจริงๆคิดว่า 2 ปีน่าจะเสร็จ (วาดภาพเอง(ตัวผลาญเวลาเลย ภาพตัวละคร 1ภาพ ใช้เวลาเร็วสุด 2 วัน ต้องใช้ประมาณ 20 ภาพ ภาพฉากใช้เวลา 5 วันต่อภาพ ต้องวาดประมาณ 15ภาพขึ้นไป วาดไม่สวยลบทิ้งวาดใหม่จนกว่าจะสวย อ่ะนะ -*-(นิสัยเสีย)) + เขียนโปรแกรมเอง +แต่งบทเนื้อเรื่องเอง ถ้าบทไม่ดี ไม่น่าติดตามแก้ไขใหม่อีก ยังไม่รวมแต่งดนตรี และแทรกมินิเกมส์เข้าไปอีก เน๊อะยังกะจะทำออกมาวางขาย -*- คือคิดไว้ว่า ถ้าจะทำ จะทำออกมาให้ดีที่สุด) และเพราะแบบนี้เองเลยคิดว่า ถ้าไม่มีเวลาทำ ก็อย่าทำดีกว่า มันต้องทุ่มเททำจริงๆ เกมส์ถึงจะออกมาดีสวยงามน่าเล่น

ไม่ว่าเกมส์ไหนๆมันต้องใช้เวลาในการทำมาก สำหรับคนทำงานแล้ว ส่วนใหญ่จะไม่ค่อยมีเวลาเพราะฉะนั้นน้องๆนักเรียน ที่มีเวลามากทั้งหลาย ถ้ามีไฟก็ทำเลยนะ อย่ารอจนเรียนจบไม่งั้นจะไม่มีเวลาให้ทำ -*-


ส่วนสำหรับคนที่ทำงานแล้ว อยากจะทำเกมส์แนวนี้ขายก็ได้เหมือนกันนะค่ะเพราะมีกลุ่มคนไทยที่เค้ารวมตัวกันทำเกมส์แนวนี้ขายอยู่ เล่นบน android หรือเล่นบนเว็บก็ได้ดีเหมือนกันทำออกมาเยอะๆ จะได้ไม่ต้องไปนั่งเดา text ญี่ปุ่นให้ปวดตา-*-


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

input_user05.jpg

ขออภัย! คุณไม่ได้รับสิทธิ์ในการดำเนินการในส่วนนี้ กรุณาเลือกอย่างใดอย่างหนึ่ง ลงชื่อเข้าใช้ | ลงทะเบียน

รายละเอียดเครดิต

ข้อความล้วน|อุปกรณ์พกพา|ประวัติการแบน|GraphicFUFU

GMT+7, 2024-5-1 05:43 , Processed in 0.091916 second(s), 21 queries .

Powered by Discuz! X3.4 R20180101, Rev.59

© 2001-2017 Comsenz Inc.

ตอบกระทู้ ขึ้นไปด้านบน ไปที่หน้ารายการกระทู้