Thaigraph

 

   

ค้นหา
Thaigraph หน้าฟอรั่ม Ren'Py [renpy] ทำร้านค้าแบบง่าย ...
ดู: 1410|ตอบ: 1
go

[renpy] ทำร้านค้าแบบง่าย

Rank: 7Rank: 7Rank: 7

โพสต์เมื่อ 13-5-2015 11:28 |แสดงโพสต์ทั้งหมด
[renpy] ทำร้านค้าแบบง่าย

จากที่มีสมาชิกท่านนึงขอให้ช่วยแปลหน้า http://www.renpy.org/wiki/renpy/ ... ry_and_Money_System เป็นภาษาไทยนะคะ


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


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



ตัวอย่างโค๊ด:
  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. init:
  2. pass
คัดลอกไปที่คลิปบอร์ด
ที่ในเว็บเขาให้มานั้น  คือถ้าเป็นการประกาศตัวแปรที่มีความซับซ้อน(เช่น มีกลุ่มตัวแปรย่อยซ้อนอยู่ภายในชื่อตัวแปรหลัก) ก็จะต้องสร้างฟังก์ชั่น เพื่อระบุลักษณะของตัวแปรนั้นๆให้ครบด้วย ภายในคำสั่ง "init python:"  (ก่อนถึง label start:) แต่ในบทความนี้เรายังไม่จำเป็นต้องใช้มันค่ะ จึงไม่เห็นมันอยู่ในโค๊ดที่ให้ไว้ข้างบน

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

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

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

  1. $ items = []
คัดลอกไปที่คลิปบอร์ด
เป็นการประกาศตัวแปรในรูแบบของ "ตัวอักษร" (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.       $ items.append("toyboy")
คัดลอกไปที่คลิปบอร์ด
เป็นการนำตัวอักษรคำว่า "toyboy" มาเป็นค่าให้กับตัวแปรที่ชื่อ "items" (ซึ่งก่อนหน้านี้ตัวแปรชื่อ "items" ยังมีค่าเป็น "ว่างเปล่า" อยู่)

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


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



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


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



ตัวอย่างโค๊ดแบบที่ 2 (Advanced) http://www.thaigraph.com/thread-3407-1-1.html

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


ไฟล์ตัวอย่างไว้ดูประกอบของบทความนี้นะคะ



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


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

Rank: 1

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


Thaigraph

GMT+7, 17-9-2019 21:47 , Processed in 0.114853 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