Thaigraph

 

   

ค้นหา
Thaigraph หน้าฟอรั่ม Ren'Py [renpy] การ Input Name User (รับค่าตัวแ ...
ดู: 3486|ตอบ: 7
go

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

Rank: 7Rank: 7Rank: 7

โพสต์เมื่อ 16-1-2013 07:43 |แสดงโพสต์ทั้งหมด
[renpy] การ Input Name User (รับค่าตัวแปร ชื่อผู้เล่น)

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


ตัวอย่างแรก
กำหนดตัวแปรที่จะ input ชื่อผู้เล่นให้เป็นแบบ DynamicCharacter (ชื่อคาแรคเตอร์สามารถแก้ไขเปลี่ยนแปลงได้)

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

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

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





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



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



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







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

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

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

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



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


บทความโดย NOOKFUFU2

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

Rank: 1

โพสต์เมื่อ 27-4-2013 03:16 |แสดงโพสต์ทั้งหมด
ผมจะทำขายผมมีเพื่อนอยู่คนหนึ่งชื่อนัท ผมเคยอยากเป็นนักร้องวงดนตรีเลยสร้างกลุ่มผมเคยอยู่ บ.ว.น เลยใช้ บ เป็น B ส่วนเพื่อนอีกคนอยู่ราชสีมาวิทยาลัยเลยใช้ R เป็น RB ผมไม่ค่อยเก่งรึไม่เก่งเลยตั่งหาก กีตาร์ก็เล่นไม่เป็นยังอยากจะตั้งวงตอนนั้นก็เลยยุบ สะงั้น ปัญหาคือ1.งบไม่มี 2.คนในวงน้อย 3.ยังเรียนไม่จบ แต่ก็ยังคุยกันเลยมาตั้งกลุ่มใช้ชื่อเก่า แต่ก็ว่างจนไม่มีอะไรจะทำเลยเห็นanimeเรื่องนึ่งชื่อ bakuman เลยมีแรงบัลดานใจว่าอยากเป็นนักวาดการ์ตูนแต่ไอ้เราดังเขียนเรื่องเป็นแต่วาดไม่สวยพอและตั้งชื่อเรื่องได้เหอะๆ แล้วก็วาดฝึกตัวเอง ดูvrzo เขาทำรายการได้ ผมก็อยากลองทำกันแต่มีเพื่อนในกลุ่มคนนึ่งไม่ดีอะไรเลยพากลุ่มเสียสะเปล่าๆพอจะทำอะไรมันก็บอกว่าเลิกๆ ทำไม่ได้หลอกมันทำให้ผมโมโหเพราะ เรายังไม่ได้ทำอะไรกันเลยจะมาตัดใจงั้นเหรอถ้าไม่พอใจก็อยู่แต่ในกลุ่มเราจะทำงาน แต่ก็ยังไม่ได้ไม่มีงบอีกแล้วผมก็เออจำได้ว่ามีโปรแกรมสร้างเกมจีบสาวเลยช่วนนัทมาช่วยยและนัทก็บอกว่าน่าสนใจผมจะเขียนเกมวาดด้วย และนัทแต่งเรื่องแต่งเพลงและถ้ามันสำเร็จผมก็มีงานทำโดยที่ตัวผมเองเป็นคนสร้าง และ ขอบคุณ NOOKFUFU2 มากๆเลย

Rank: 7Rank: 7Rank: 7

โพสต์เมื่อ 27-4-2013 13:22 |แสดงโพสต์ทั้งหมด
ขอขอบคุณเช่นกันค่ะ ในไทยมีผู้ผลิตเกมส์แนวเนื้อเรื่องน้อยมาก ที่เห็นมีการรวมตัวกันทำจริงจังก็มี กลุ่ม StudioGU ส่วนนึงเป็นเพราะการจับกลุ่มรวมตัวกันทำจริงๆ ยังมีน้อย ส่วนใหญ่จะเป็นคนๆเดียวทำเองทั้งเกมส์ ทำให้เกมส์ขาดความสมบูรณ์ไป เพราะแต่ละคนจะมีสามารถเฉพาะทางที่ถนัดไม่เหมือนกัน ภาพสวย บทเนื้อเรื่องเกมส์แย่ เกมส์ก็แจ้งเกิดยาก

(เมื่อสัปดาห์ก่อนไปเดินดูแผ่นเกมส์ ที่ห้างอิมฯ สาขาสำโรง ไปเจอร้านๆหนึ่ง เค้าวางขายแผ่นก๊อปเกมส์ของค่าย StudioGU กัน แผ่นก๊อปแผ่นละ 100 บาท แต่แผ่นของแท้จากเว็บไซต์ราคาขายต่างกันแค่ไม่เท่าไหร่ แต่ถ้าพวกหัวหมอเอามาก๊อปวางขายได้นี่ ก็แสดงว่าของเค้าต้องดีจริง ถ้าทำออกมาแล้วขายไม่ได้นี่ พวกหัวหมอมันคงไม่เสียเวลามานั่งก๊อปขาย (ใครที่ผ่านมาอ่านคอมเม้นนี้ก็ฝากด้วยนะค่ะ อุดหนุนของจริงกันหน่อยเถอะ ถ้าคุณยังอยากให้มีเกมส์ดีๆในไทยต่อไป)  

ส่วนใหญ่บทความสอน  renpy  เกือบทั้งหมดจะเป็นภาษาอังกฤษ เกาหลี จีน และภาษาญี่ปุ่น 4 ประเทศนี้จะนิยมใช้ renpy ทำเกมส์แนวเนื้อเรื่องกัน เนื่องจากมันสามารถรันบน Window , Mac , ลีนุกส์ , เล่นออนไลท์เชื่อมเว็บ , android , iPod และ iphone ได้  และทำให้เราสามารถออกแบบหน้าจอเกมส์ได้หลากหลายไม่มีขีดจำกัด รวมทั้งสามารถประยุกต์โค๊ดได้มากมายตามจินตนาการ ผิดกับเกมส์สำเร็จรูปรุ่นเก่าที่ มักถูกผูกมัดด้วยเงื่อนไขข้อจำกัดต่างๆ ภาพหยาบไม่สวย ไม่ดูทันสมัย

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

จริงๆ คิดว่าคนอยากทำเกมส์เป็นมีเยอะ แต่คนไทยที่สอนมีน้อย + ค่าเรียนต่อตัวก็แพง โดยส่วนตัวถ้าเป็นของคนไทยทำ+ เกมส์มีคุณภาพ + ราคาไม่แพงเวอร์ สมน้ำสมเนื้อ  ก็ซื้อของจริงถูกลิขสิทธิ์เล่นแน่ค่ะ เพราะเป็นคนชอบเล่นเกมส์อยู่แล้ว



Rank: 1

โพสต์เมื่อ 27-4-2013 22:52 |แสดงโพสต์ทั้งหมด
angel tale สินะครับขอ StudioGU ตามจริงผมเห็นพวกที่ปล่อยให้โหลดทางเน็ตซึ่งผมรับไม่ได้เพราะกว่าที่คนสร้างเกมจะสร้างได้มันไม่ใช้ว่าง่ายๆ

Rank: 1

โพสต์เมื่อ 2-1-2014 12:00 |แสดงโพสต์ทั้งหมด
ผมอยากจะทำอย่างหนึ่ง เช่น

ตอนแรก เรายังไม่ได้แนะนำตัวเองก็ให้ใส่ชื่อว่า ??? ไปก่อน
ต่อมาเมื่อเขาถามชื่อเรา เราก็จะต้องอินพุตชื่อเข้าไป
หลังจากที่ใส่ชื่อเราไปแล้ว ??? ก็จะกลายเป็นชื่อที่เราอินพุตเข้าไป

อันนี้เขาเขียนกันยังไงนะ

Rank: 7Rank: 7Rank: 7

โพสต์เมื่อ 4-1-2014 13:17 |แสดงโพสต์ทั้งหมด
ตอบกระทู้ Singhastar ตั้งกระทู้


เขียนแบบนี้ค่ะ

  1. # Declare characters used by this game.
  2. define e = Character('Eileen', color="#c8ffc8")#<--- ตัวละครในเกมส์
  3. define k = DynamicCharacter('player_name', color="#ff0000")#<--- ตัวเราเอง

  4. # The game starts here.
  5. # เริ่มเกมส์

  6. label start:
  7.     $ player_name= "????????" #<--- ชื่อของตัวเรากำหนดให้ชื่อว่า "??????" ไปก่อน
  8.    
  9.     k "สวัสดี Eileen เธอจำฉันได้ไหม"
  10.     e "สวัสดีค่ะ เอ่อ... คุณชื่อ....?"

  11. #รับตัวแปรชื่อของตัวเราใหม่อีกครั้ง
  12.     $ player_name = renpy.input("(กรุณาพิมพ์ชื่อของคุณ และกดปุ่ม Enter)")
  13.     $ player_name = player_name.strip()
  14.      
  15. #ใช้ตรวจเช็คว่าได้พิมพ์ชื่อลงไปหรือไม่
  16.     if player_name == "":
  17.         $ player_name= "แฟรี่" #ถ้าผู้เล่นไม่ยอมพิมพ์ชื่อ โปรแกรมจะตั้งชื่อว่า "แฟรี่" ให้แทน
  18.         
  19.     k "ฉันชื่อ  [player_name] ไง! นี่เธอยังจำชื่อฉันไม่ได้อีกเหรอ!!!"
  20.     e " [player_name]   [player_name]   [player_name]  สงสัยฉันคงต้องท่องชื่อนี้หลายๆครั้ง"
  21.     return
คัดลอกไปที่คลิปบอร์ด


Rank: 1

โพสต์เมื่อ 21-8-2015 20:52 |แสดงโพสต์ทั้งหมด
ผมสงสัยอย่างนึงคับ
ตอนที่เราพิมพ์ชื่อเเบบไดนามิคเนี่ยมันจะเป็นสีเหลือง
เราเปลี่ยนสีตรงที่เราจะพิมให้เปนสีอื่นได้มั๊ยคับ
(ขอบคุนล่วงหน้านะคับ)

Rank: 1

โพสต์เมื่อ 21-7-2019 08:29 |แสดงโพสต์ทั้งหมด
ทำไมต้องใส่ $ หรอคะมันคออะไรหรอ
คุณต้องเข้าสู่ระบบก่อนจึงจะสามารถตอบกลับ เข้าสู่ระบบ | สมัครสมาชิก


Thaigraph

GMT+7, 18-9-2019 10:41 , Processed in 0.267895 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