Ren'Py พื้นฐาน | บทที่ 3 กล่องข้อความ - Printable Version +- irpg Community (https://irpg.in.th) +-- Forum: irpg Sugar School of Ren'Py (https://irpg.in.th/forum-38.html) +--- Forum: Ren'Py Engine School (https://irpg.in.th/forum-39.html) +--- Thread: Ren'Py พื้นฐาน | บทที่ 3 กล่องข้อความ (/thread-3396.html) |
||||||||||||||||||||||||
Ren'Py พื้นฐาน | บทที่ 3 กล่องข้อความ - Mikichan - 07-23-2019 ติดตามเราได้ที่ Facebook ชื่อเพจ Planila Game Developer กล่องข้อความคือส่วนสำคัญในเกมแนว Visual Novel เนื่องจากเป็นส่วนที่แสดงคำพูดของตัวละคร โปรแกรมเกมเอนจิน Ren'Py มีลูกเล่นเกี่ยวกับกล่องข้อความมากมาย นักสร้างเกมสามารถสร้างกล่องข้อความสวย ๆ ได้อย่างง่ายดาย สำหรับผู้อ่านที่ต้องการใช้ภาษาไทยในโปรแกรม Ren'Py ให้ท่านเปลี่ยนฟอนต์ก่อนทดสอบเกม อ่านเพิ่มเติมได้ในหัวข้อ "เปลี่ยนฟอนต์ ขนาด และสีตัวอักษร (ทั้งเกม)" กล่องข้อความในเกมที่สร้างด้วยโปรแกรม Ren'Py แบ่งเป็น 3 ส่วนดังรูปที่ 3.1 ได้แก่
คำสั่งที่แสดงข้อความในกล่องข้อความมี 2 รูปแบบ รูปแบบแรกมีสองส่วนคือส่วนชื่อตัวละครและส่วนคำพูดตัวละคร แต่ละส่วนอยู่ภายในเครื่องหมาย " " รูปแบบนี้เหมาะสำหรับคำพูดทั่วไป Code: "ชื่อตัวละคร" "คำพูดตัวละคร" รูปแบบที่สองมีเพียงส่วนเดียวคือส่วนคำพูดตัวละครที่อยู่ในเครื่องหมาย " " คำสั่งรูปแบบนี้จะแสดงเฉพาะคำพูดตัวละคร ไม่แสดงชื่อตัวละคร รูปแบบนี้เหมาะสำหรับประโยคที่ตัวละครคิดในใจ หรือข้อความแจ้งเตือนจากเกม Code: "คำพูดตัวละคร" ตัวอย่างคำสั่งที่ใช้แสดงข้อความในรูปที่ 3.1 คือ Code: "Aiya" "What are you doing? Why you don't knock the door!" ประกาศตัวแปรเก็บชื่อตัวละคร ก่อนเรียนเรื่องการใช้กล่องข้อความต่อ ผู้เขียนมีเทคนิคการใส่คำสั่งให้สั้นลง เกมแนว Visual Novel ต้องแสดงข้อความหรือคำพูดจำนวนมาก จึงต้องแสดงชื่อตัวละครเดิมซ้ำกันหลายครั้ง โปรแกรม Ren'Py มีเทคนิคที่จัดการกับชื่อตัวละคร แทนที่จะใส่ชื่อตัวละครเดิมซ้ำกันทุกครั้ง เราสามารถประกาศตัวแปรและใส่ชื่อตัวละครลงในตัวแปรแทนได้ในรูปแบบดังนี้ Code: define ชื่อตัวแปร = Character('ชื่อตัวละคร') ตัวอย่างเช่น ประกาศตัวแปร a แล้วใส่ชื่อตัวละคร Aiya ลงในตัวแปร a คำสั่งแสดงข้อความไม่ต้องใส่เครื่องหมาย " " ในส่วนชื่อตัวละครที่เป็นตัวแปร (ถ้าส่วนชื่อตัวละครไม่ใช่ตัวแปรจะต้องใส่เครื่องหมาย " " ทุกครั้ง) เราสามารถแสดงข้อความดังรูปที่ 3.1 ด้วยเทคนิคตัวแปรดังนี้ Code: define a = Character('Aiya') จากตัวอย่างข้างบนจะเห็นว่าใช้ตัวอักษรเพียงตัวเดียวคือ a เพื่อแสดงชื่อตัวละคร Aiya ซึ่งมีสี่ตัวอักษร ความสะดวกนี้จะเห็นได้ชัดเจนขึ้นเมื่อตัวละครมีชื่อยาว เช่น เก็บชื่อตัวละคร Princess Sofia de Lupier ลงตัวแปรชื่อ s แล้วเรียกใช้ชื่อตัวละครผ่านตัวแปร s ทำให้ไม่ต้องพิมพ์ชื่อยาว ๆ ทุกครั้งที่ใส่คำสั่งแสดงข้อความ การประกาศตัวแปรให้ประกาศเพียงครั้งเดียวก่อนใช้ จากนั้นสามารถใช้ตัวแปรนั้นได้ตลอดทั้งเกมโดยไม่ต้องประกาศตัวแปรใหม่ ถ้ามีตัวแปรที่เก็บชื่อตัวละครหลายตัวแปร ตัวแปรแต่ละตัวต้องมีชื่อที่ไม่ซ้ำกัน ตัวอักษรพิเศษ ตัวอักษรพิเศษ (Escape Character) เป็นตัวอักษรที่ไม่สามารถแสดงในกล่องข้อความด้วยวิธีปกติได้ เช่น เครื่องหมาย " " หรือการขึ้นบรรทัดใหม่ เนื่องจากติดข้อจำกัดคำสั่งของโปรแกรม Ren'Py แต่โปรแกรม Ren'Py มีทางออกด้วยการใช้ตัวอักษรพิเศษแทนการใส่ตัวอักษรนั้นเข้าไปตรง ๆ ตัวอักษรพิเศษได้แก่
การใช้ตัวอักษรพิเศษให้ใส่ในข้อความที่ต้องการ เช่น ใส่ตัวอักษรพิเศษ \" เพื่อแสดงเครื่องหมาย " ในกล่องข้อความ ส่วนเครื่องหมาย \ เป็นเพียงการบอกว่านี่เป็นตัวอักษรพิเศษ เครื่องหมาย \ จะไม่ถูกแสดงในกล่องข้อความ ถ้าผู้อ่านต้องการใช้ตัวอักษรในตารางข้างบน ท่านต้องใช้ตัวอักษรพิเศษเท่านั้น ไม่สามารถใส่ตัวอักษรที่ต้องการโดยตรงได้ รูปที่ 3.2 การใช้ตัวอักษรพิเศษ \n เพื่อขึ้นบรรทัดใหม่
โดยทั่วไปโปรแกรม Ren'Py จะมองเว้นวรรคที่อยู่ติดกันเป็นเว้นวรรคเดียว ถ้าต้องการเว้นวรรคหลายครั้ง ต้องนำหน้าเว้นวรรคด้วยเครื่องหมาย \ ต่อเว้นวรรคหนึ่งครั้ง เพื่อให้โปรแกรม Ren'Py มองแยกเป็นหลายเว้นวรรค การแสดงเครื่องหมาย [ และ { ให้ใส่เครื่องหมายนั้นสองตัวติดกันเป็น [[ และ {{ แต่เครื่องหมาย ] และ } สามารถใส่ได้โดยตรง ไม่ต้องใส่ซ้ำสองตัว เปลี่ยนฟอนต์ ขนาด และสีตัวอักษร (ทั้งเกม) ...... นี่เพิ่งแค่ 35% ของบทความนี้เท่านั้น บทความฉบับเต็มมีเยอะกว่านี้อีก! เนื่องจากติดปัญหาเรื่องนโยบายการเผยแพร่บทความ ทำให้เราไม่สามารถเผยแพร่บทความฉบับเต็มลงในเว็บนี้ได้ อ่านฉบับเต็มได้ที่บทความต้นฉบับ (ไม่มีค่าใช้จ่าย) บทความต้นฉบับ https://planila.blogspot.com/2019/07/renpy-chapter03.html RE: Ren'Py พื้นฐาน | บทที่ 3 กล่องข้อความ - dreamknight - 07-25-2019 ;3 ท่านมิกิลามก |