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

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

[Renpy] 26. ทำร้านค้าแบบง่าย

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

272

กระทู้

272

โพสต์

979

เครดิต

ผู้ดูแลระบบ

Rank: 9Rank: 9Rank: 9

เครดิต
979
แก้ไขครั้งสุดท้ายโดย nooknazha เมื่อ 2018-6-13 12:57

Shop_Easy_02.jpg
[Renpy] 26. ทำร้านค้าแบบง่าย
จากที่มีสมาชิกท่านนึงขอให้ช่วยแปลหน้า http://www.renpy.org/wiki/renpy/... ry_and_Money_System เป็นภาษาไทยนะคะ
นั่งอ่านดูแล้วคือบางคำมันเป็นศัพท์เฉพาะทางของพวกเขียนโปรแกรมเขาจะเข้าใจแต่คนที่ไม่ถนัดหรือมือใหม่อ่านแล้วก็อาจจะงงๆกันบ้างเลยเอาเป็นว่าข้าพเจ้าขออนุญาตแปลเป็นภาษาที่เข้าใจกันง่ายๆดีกว่ามือใหม่จะได้เข้าใจตามกันได้ง่ายขึ้น (หรือเปล่า)

เริ่มจากโค๊ดตัวอย่างแรกที่เขาให้ศึกษามานะคะขอแปลงเป็นแบบที่ตัวเองชอบเลยละกันแหะๆ (มันเขียนคล้ายๆกัน)
Shop_Easy_01.jpg


ตัวอย่างโค๊ด:

  1. define b = Character('คิมหันต์', color="#f8f092")

  2. # เริ่มเกมส์
  3. label start:

  4.     $ coins = 0
  5.     $ items = []
  6.     b "วันนี้คุณได้รับเงิน 1000 บาท!  ดีมากๆเลย!"
  7.     $ coins += 1000
  8.     b "คุณมีเงินอยู่ %(coins)d บาท คุณต้องการซื้ออะไร?"
  9. menu:
  10.    "หุ่นยนต์กันดั้ม 600 บาท":
  11.       $ coins -= 600
  12.       $ items.append("toyboy")
  13.    "ตุ๊กตาบาร์บี้ 400 บาท":
  14.       $ coins -= 400
  15.       $ items.append("toygirl")
  16.    "พิซซ่าฮาวาเอียน 459 บาท":
  17.       $ coins -= 459
  18.       $ items.append("pizza")
  19. if "pizza" in items:
  20.    b "คุณได้รับ pizza แล้ว เย้!"
  21. b "คุณเหลือเงินในกระเป๋า %(coins)d บาท"
  22. return
คัดลอกไปที่คลิปบอร์ด

อธิบายโค๊ด:
  1. <font size="4">
  2. init:
  3. pass
  4. </font>
คัดลอกไปที่คลิปบอร์ด

ที่ในเว็บเขาให้มานั้น  คือถ้าเป็นการประกาศตัวแปรที่มีความซับซ้อน(เช่นมีกลุ่มตัวแปรย่อยซ้อนอยู่ภายในชื่อตัวแปรหลัก) ก็จะต้องสร้างฟังก์ชั่น เพื่อระบุลักษณะของตัวแปรนั้นๆให้ครบด้วยภายในคำสั่ง "init python:"  (ก่อนถึง labelstart แต่ในบทความนี้เรายังไม่จำเป็นต้องใช้มันค่ะจึงไม่เห็นมันอยู่ในโค๊ดที่ให้ไว้ข้างบน

  1. <font size="4">
  2. label start:
  3. $ coins = 0
  4. </font>
คัดลอกไปที่คลิปบอร์ด
เป็นการประกาศตัวแปรใน label start โดยคำสั่งประกาศตัวแปรในren'py จะใช้ "$" นำหน้าทุกครั้ง

$ coins = 0 เป็นการประกาศตัวแปรชนิดที่เป็น "ตัวเลข"(Int/Decimal)ที่สามารถนำ "ค่า" มาคำนวนทางคณิตศาสตร์ได้

จากตัวอย่างข้างบนเราสร้างตัวแปร "coins" ขึ้นมาใช้แทน "จำนวนเงินในเกมส์" และกำหนดให้มันมีค่าเริ่มต้นเท่ากับ"0" บาท
โดยให้ต่อจาก "label start:" เพื่อจะบอกให้ren'py รับรู้ว่า ตัวแปร "coins" นี้จะถูกใช้งานตั้งแต่ส่วนนี้เป็นต้นไป

  1. <font size="4">$ items = []
  2. </font>
คัดลอกไปที่คลิปบอร์ด
เป็นการประกาศตัวแปรในรูแบบของ "ตัวอักษร" (String) ที่ไม่สามารถนำมาคำนวณเชิงคณิตศาสตร์ได้แต่สามารถนำมาใช้ในเรื่องของการเปรียบเทียบค่า " True (จริง)"หรือ "เท็จ(False)"  ได้

ในที่นี้เราได้กำหนดให้ตัวแปร "items" เป็นตัวแปรแทนสิ่ง"ของที่เราซื้อมา" โดยกำหนดให้มัน "ว่าง" เอาไว้ก่อน(เพราะเรายังไม่ได้ซื้ออะไรเข้ามา)


  1. "คุณมีเงินอยู่ %(coins)d บาท คุณต้องการซื้ออะไร?"
คัดลอกไปที่คลิปบอร์ด
%(coins)d เป็นรูปแบบการเขียนที่สั่งให้ ren'py ทำการแสดง "ค่าล่าสุด" ของตัวแปรชื่อ "coins" ที่ช่องสนทนนาตัวละคร

"d"  คือชนิดของตัวแปร ย่อมาจาก "Decima"หมายถึงสั่งโปรแกรมให้แสดงค่าตัวเลขชนิด "Decima" ของตัวแปรที่ชื่อ "coins" ออกมา


ในกรณีเดียวกัน...ถ้าคุณใช้ตัวแปรชื่อว่า "bath" ก็จะเขียนได้ว่า "%(bath)d" ค่ะ (จะเปลี่ยนตามชื่อของตัวแปรนั้นๆ)


  1. menu:
คัดลอกไปที่คลิปบอร์ด
เป็นการบอกให้ ren'py รู้ว่าหลังจากนี้จะมีการให้ "ทางเลือก(choices)"แก่ผู้เล่น  

  1.    "หุ่นยนต์กันดั้ม":
  2.       $ coins -= 600  (หรือจะเขียนอีกแบบว่า $ coins = coins - 600 ก็ได้เช่นกัน )
คัดลอกไปที่คลิปบอร์ด
หากผู้เล่นเลือกข้อนี้จะทำให้ค่าภายในตัวแปร "coins"  "ถูกหัก" ไป 600
  1. <font size="4">$ items.append("toyboy")</font>
คัดลอกไปที่คลิปบอร์ด
เป็นการนำตัวอักษรคำว่า "toyboy" มาเป็นค่าให้กับตัวแปรที่ชื่อ"items" (ซึ่งก่อนหน้านี้ตัวแปรชื่อ "items"ยังมีค่าเป็น "ว่างเปล่า" อยู่)
  1.    "ตุ๊กตาบาร์บี้":
  2.       $ coins -= 400
  3.       $ items.append("toygirl")
  4.    "พิซซ่าฮาวาเอียน":
  5.       $ coins -= 459
  6.       $ items.append("pizza")
คัดลอกไปที่คลิปบอร์ด
ทางเลือกที่เหลือเราก็ทำแบบเดียวกันกับข้างต้นค่ะ ต่างกันแค่ราคาสินค้า และชื่อของสินค้า
  1. <font size="4">if "pizza" in items:</font>
คัดลอกไปที่คลิปบอร์ด
เป็นคำสั่งที่ใช้ตรวจสอบกับเงื่อนไขที่เป็นจริงเท่านั้นสำหรับการเขียนข้างบนนี้จะหมายถึง ถ้าตัวแปรชื่อ "items" มีค่าเป็น "pizza"จริง ให้ทำดังนี้... "
  1. <font size="4">"คุณได้รับ pizza แล้ว เย้!"</font>
คัดลอกไปที่คลิปบอร์ด
แสดงข้อความที่บอกแก่ผู้เล่นว่า "คุณได้รับ pizza แล้วเย้!"

มาดูผลลัพธ์ที่ได้เมื่อทดสอบเกมส์กันนะคะ
- ลองคลิกเลือก pizza

Shop_Easy_02.jpg
- ตรงกับเงื่อนไข จึงแสดงข้อความดังภาพล่าง
Shop_Easy_03.jpg
- บอกจำนวนเงินที่เหลือในกระเป๋า
Shop_Easy_04.jpg


***************************************

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



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

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

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

GMT+7, 2024-4-19 21:46 , Processed in 0.109416 second(s), 21 queries .

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

© 2001-2017 Comsenz Inc.

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