nooknazha โพสต์ 2018-6-13 12:49:38

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

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


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

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



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

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

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

    $ coins = 0
    $ items = []
    b "วันนี้คุณได้รับเงิน 1000 บาท!ดีมากๆเลย!"
    $ coins += 1000
    b "คุณมีเงินอยู่ %(coins)d บาท คุณต้องการซื้ออะไร?"
menu:
   "หุ่นยนต์กันดั้ม 600 บาท":
      $ coins -= 600
      $ items.append("toyboy")
   "ตุ๊กตาบาร์บี้ 400 บาท":
      $ coins -= 400
      $ items.append("toygirl")
   "พิซซ่าฮาวาเอียน 459 บาท":
      $ coins -= 459
      $ items.append("pizza")
if "pizza" in items:
   b "คุณได้รับ pizza แล้ว เย้!"
b "คุณเหลือเงินในกระเป๋า %(coins)d บาท"
return
อธิบายโค๊ด:
<font size="4">
init:
pass
</font>
ที่ในเว็บเขาให้มานั้นคือถ้าเป็นการประกาศตัวแปรที่มีความซับซ้อน(เช่นมีกลุ่มตัวแปรย่อยซ้อนอยู่ภายในชื่อตัวแปรหลัก) ก็จะต้องสร้างฟังก์ชั่น เพื่อระบุลักษณะของตัวแปรนั้นๆให้ครบด้วยภายในคำสั่ง "init python:"(ก่อนถึง labelstart:) แต่ในบทความนี้เรายังไม่จำเป็นต้องใช้มันค่ะจึงไม่เห็นมันอยู่ในโค๊ดที่ให้ไว้ข้างบน

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

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

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

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

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


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

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


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


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

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

- ตรงกับเงื่อนไข จึงแสดงข้อความดังภาพล่าง

- บอกจำนวนเงินที่เหลือในกระเป๋า



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

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


หน้า: [1]
ดูในรูปแบบกติ: [Renpy] 26. ทำร้านค้าแบบง่าย