irpg Community
การทำระบบตั้งชื่อตัวละครอย่างง่าย (Name Input) - Printable Version

+- irpg Community (https://irpg.in.th)
+-- Forum: irpg Sugar School of Ren'Py (https://irpg.in.th/forum-38.html)
+--- Forum: The Great Ren'Py Library (https://irpg.in.th/forum-40.html)
+--- Thread: การทำระบบตั้งชื่อตัวละครอย่างง่าย (Name Input) (/thread-1913.html)



การทำระบบตั้งชื่อตัวละครอย่างง่าย (Name Input) - Rocette - 05-25-2014

สำหรับ Visual Novel แนว Simulator
เพื่อสร้างอารมณ์ร่วมในการสวมบทบาท หลายๆเกมส์มักจะมอบโอกาสให้ผู้เล่นตั้งชื่อตัวละครเองได้
ฉะนั้น เราก็จะเห็นตัวละครสาวน่ารักเรียกชื่อเราเช่น "นายจะบ้าเหรอ! 'สมศักดิ์' อย่าได้เข้าใจผิดเชียวนะ!" เป็นต้น

วันนี้เราจะมาสอนวิธีการทำแบบนั้นใน Ren'Py โปรแกรมVN Engineยอดนิยมกัน ไฮโซ

ก่อนอื่นก็เปิดไฟล์script.rpyขึ้นมา ด้วยโปรแกรมอะไรก็ได้ตามสะดวก ส่วนของผมใช้ jedit ล่ะ

จากนั้น ก็เริ่มต้นด้วยการ define ตัวละครขึ้นมาก่อน ให้มาเริ่มที่ส่วนประกาศ เหนือ label start

Code:
#การประกาศตัวแปรชื่อ สามารถเปลี่ยน m กับ my_name ได้ตามใจชอบ
define m = DynamicCharacter('my_name', color="#ff0100")
แล้วก็เขียนโค้ดดังนี้ลงไปในส่วนของตัวเกมส์

Code:
label start:
    
    #การตั้งชื่อตัวละคร my_name สามารถเปลี่ยนได้ตามใจชอบ คุณอาจจะเลือกคำอื่นๆเช่น player แทนตัวแปรได้ ทั้งนี้จะต้องเป็นคำเดียวกันกับคำที่คุณประกาศตัวแปรไว้ก่อนหน้านี้นะ

    $ my_name = renpy.input("โปรดตั้งชื่อตัวละครของคุณ")
    $ my_name = my_name.strip()

    #ส่วนตรงนี้ ในกรณีที่ผู้เล่นไม่ใส่ชื่อตัวละคร เราจะตั้งชื่อตัวละครแบบdefaultไว้ด้วย
    if my_name == "":
        $ my_name="สมศักดิ์"

เสร็จแล้วครับ ไม่ยากเลยใช่ไหม ทีนี้คำว่า my_name ทุกคำในเกมส์ของคุณก็จะใช้แทนชื่อตัวละครหลักไปตลอด
เวลาจะใช้ในเกมส์ก็ให้ทำอย่างนี้

Code:
m "ผมชื่อ %(my_name)s!"

พอลองเริ่มเกมส์มา ตัวละครที่คุณ define ไว้ คือ m = my name ก็จะพูดว่า "ผมชื่อ สมศักดิ์!"

วิธีตั้งชื่อนี้สามารถใช้กับตัวแปรอะไรก็ได้ตามต้องการนะครับ หากคุณอยากให้ผู้เล่นตั้งชื่อแมว ชื่อหมา ชื่อแฟน ชื่อพ่อแม่ ก็ให้ประกาศตัวแปรอีกอันแทน my_name แล้วทำตามแบบวิธีข้างต้นโดยเปลี่ยน my_name เป็นตัวแปรอื่นตามใจชอบได้เลย

เอาละ! Lesson Complete
หวังว่าบทความนี้คงจะประโยชน์ให้แก่ผู้สนใจเอนจิ้นเรนปี้ไม่มากก็น้อยนะครับ ร้องไห้หนักมาก

โอกาสหน้าพบกันใหม่ เมี้ยว