 |
บุคคลทั่วไป: 1
ไม่มีสมาชิกขณะนี้
สมาชิกทั้งหมด: 43
ยังไม่ยืนยัน: 0
สมาชิกล่าสุด: anyka
|
 |
|
|
Renpy Programming คำสั่งเบื้องต้นในการเขียน ตอนที่ 2 ( python, Character)
|
|
 |
เอาล่ะครับเพื่อความต่อเนื่องในการศึกษาผมก็จะรีบๆสอนต่อละกันครับสำหรับเนื้อหาในตอนที่ 2 ที่ผมจะหยิบยกขึ้นมานั้นก็จะเกี่ยวข้องกับเรื่อง
- การใช้ตัวแปรเบื้องต้น (python)
- กรอบคำพูด (Character)
เห็นว่าหัวข้อน้อยๆอย่างงี้ก็เห่อะยุ่งยากพอดูเลยล่ะ
การใช้ตัวแปรเบื้องต้น(Python)
python แปลตรงตัว หมายถึง งูใหญ่ , งูเหลือม , อนาคอนด้า ฯลฯ หรืออีกความหมายหนึ่งหมายถึง การสิงสู่ ,การเข้าสิง
python ตามความหมายของในที่นี้นั้นจะเกี่ยวของกับตัวแปรครับ ตัวแปรนั้นเปรียบเสมือนแฟ้มที่คอยทำหน้าที่เก็บข้อมูลต่างๆที่จำเป็นต่อการทำงานของโปรแกรมเอาไว้ โดยปกติแล้วเราจะนิยมประกาศค่าตัวแปรไว้ในส่วน init ครับ pythonในเรนปีนั้นแบ่งใช้งานได้ 2 ลักษณะคือ
1 .) ประกาศค่าบรรทัดเดียว การเรียกใช้งานก็แสนจะง่ายจนน่าตกใจครับ
$ name = ค่าตัวแปร
ส่วนเวลาที่เราจะตั้งชื่อตัวแปรมันยังไงก็ได้นะครับขออย่างเดียวว่าอย่าไปตั้งซ้ำกับ keyword ของมันก็พอครับ
keyword ของภาษานี้มีดังนี้ครับ http://www.renpy.org/wiki/renpy/doc/reference/The_Ren%27Py_Language#head-a34a0457ffbdae8847e5808b40f058ab85619167
2 .) แบบหลายบรรทัด การทำงานในรูปแบบนี้ค่อนข้างแปลกๆไปหน่อย คือเป็นการประกาศทีละหลายบรรทัดไปเลย มันจะเป็นตัวที่ทำหน้าที่ mark ให้โปรแกรมรู้ว่าตำแหน่งนี้เป็นส่วนของการประกาศ function หรือ ใช้ประกาศค่า array และการเรียกใช้งานเกี่ยวกับ UI Function การเรียกใช้งานก็แสนจะง่ายจนน่าตกใจกว่าอันแรกอีกครับ
python :
ตัวแปรที่มีการประกาศอยู่ภายใต้คำสั่ง python ไม่ต้องใส่ $ ที่หน้าตัวแปรนะครับ
ปล.อันที่จริงแล้วคำสั่งนี้เป็นคำสังที่ไว้สำหรับพิมพ์ code ภาษา python ลงไปใน renpy อ่ะนะซึ่งสามารถที่จะเขียนไว้ตรงไหนในส่วนของโปรแกรมก็ได้ เพียงแต่ว่าตอนนี้ผมขออธิบายเฉพาะในส่วนของการประกาศตัวแปรเท่านั้นก่อนละกัน
เอาล่ะไหนๆก็พูดถึงเรื่องตัวแปรแล้วก็จะขอแถมตัวแปรอีกชนิดนึงก็แล้วกันนั่นก็คือ
Array เป็นตัวแปรที่มีคุณสมบัติในการเก็บค่าได้หลายค่าภายในตัวเดียวกัน เหมือนกับตู้ใส่แฟ้มเอกสาร
หลักการใช้งาน
$ name = [ ค่าต่างๆ1 , ค่าต่างๆ2 , ... ]
หากเวลาเราต้องการเรียกใช้งานตัวแปร array ก็เพียงแค่ ประกาศตามนี้
name[ตัวเลข]
ตัวเลขในที่นี้หมายถึงลำดับช่องของอเรย์ที่เราต้องการ(เราสามารถใส่เป็นคาตัวแปรแทนตัวขกได้ครับถ้าหากว่าค่าตัวแปรเป็นชนิดตัวเลข)
การนำค่าตัวแปรมาแสดงในเฟรมคำพูด
e ข้อความ %(ตัวแปร)s
จะเห็นว่าเราจะต้องมี %( )s คลอบตัวแปรที่เราต้องการแสดงไว้เท่านี้เราก็สามารถแสดงค่าต่างๆออกมาได้แล้ว
%( )s จะแสดงตัวแปรที่เป็นค่า string
%( )d จะแสดงตัวแปรที่เป็นค่า int
%( )f จะแสดงตัวแปรที่เป็นค่า ทศนิยม
ที่ยกมาคือตัวที่ใช้บ่อยที่สุดยังมีรูปแบบอื่นๆอีกลองหาดูละกัน
http://www.python.org/doc/2.3.5/lib/typesseq-strings.html
วิธีนี้ไม่สามารถใช้กับตัวเปร array ได้ต้องทำการโอนค่าจากตัวแปร array ไปยังตัวแปรธรรมดาก่อน
แล้วค่อยดึงค่าจากตัวแปรธรรมดามาลง
หลังจากที่เราเกริ่นเกี่ยวกับการ output ค่ากันมาบ้างแล้ว ต่อไปเราจะมาพูดเกี่ยวกับการ input ค่ากันบ้างนะครับ
หากว่าเราต้องการใส่ตัวอักษรอะไรให้เกมส์เหมือนกับตอนที่เราต้องถอดรหัสในเกมส์แนว advทั่วไปแหล่ะครับ
ประกาศใช้งานได้ดังนี้ครับ
$ ชื่อตัวแปร = renpy.input("ข้อความ")
บรรทัดนี้จะเป็นการเก็บค่าจากที่เราพิมพ์ไปใส่ลงในตัวแปรที่เรากำหนดครับ
ส่วนการแสดงส่วน input นี้ให้เป็นภาษาไทยนั้นให้เราทำการเปลี่ยน font ให้เป็น font ที่รองรับภาษาไทยได้ ตรงบรรทัดที่ 140 ในไฟล์ option.rpy
style.default.font = "angsananew" <------ เคยอธิบายไปแล้วในเรื่องการปรับแต่งค่าก่อนสร้างเกมส์
จากนั้นตรงส่วนข้อความหากต้องการจะเปลี่ยนเป็นภาษาไทยด้วยนั้นให้เราใช้วิธีการเดียวกับการแสดงชื่อเป็นภาษาไทยซึ่งจะกล่าวในหัวข้อถัดไปครับ
กรอบคำพูด สำหรับหัวข้อนี้จะมีฟังก์ชันที่สำคัญอยู่ตัวนึงนั้นก็ คือ
ฟังก์ชัน Character โดยปกติแล้วต้องประกาศในส่วน init เท่านั้น สำหรับรูปแบบการใช้งานเบื้องต้นนั้นประกาศดังนี้
Character ( name , Keyword Arguments1 , Keyword Arguments2 , ... )
name หมายถึง ชื่อของตัวละครหากไม่ต้องการจะแสดงชื่อให้พิมพ์ None ซะ โดยปกติไม่สามารถพิมพ์ภาษาไทยได้ หากต้องการให้พิมพ์ภาษาไทยได้ต้องแก้ไขดังนี้
$ name = file(config.gamedir + "/ชื่อไฟล์ที่เก็บชื่อตัวละครไว้.txt ").read().decode("utf-8") <------เพิ่มคำสั่งบรรทัดนี้ลงไป
$ a = Character(name, color="#c8ffc8", what_font="ชื่อของ font ภาษาไทย", font="ชื่อของ font ภาษาไทย") <----- จากนั้นก็ประกาศค่าตามปกติ
หนึ่ง ชื่อก็หนึ่งไฟล์ไปเลยนะครับไม่ต้องงก ตอนที่ save ไฟล์ .txt ให้ save เป็นชนิด UTF-8 ด้วย <----- (ตรงนี้สำคัญมากๆ)
Keyword Arguments หมายถึง option ต่างๆที่เราจะกำหนดลงไปมีมากมายหลายตัวจะขอยกมาแค่ตัวที่พบบ่อยๆละกัน
- color = "#c8ffc8" <--- สีชื่อของตัวละคร
- what_color="#000" <----- กำหนดสีของtext
- what_font="angsananew" <----- กำหนด font ของ text ในเฟรม
- font = "angsananew" <----- กำหนด font ของชื่อตัวละคร
- who_prefix = ตัวอักษร <----- กำหนดให้ตัวอักษรที่เราตั้งไว้นำหน้าชื่อตัวละครเสมอ
- who_suffix = ตัวอักษร <----- กำหนดให้ตัวอักษรที่เราตั้งไว้ตามหลังชื่อตัวละครเสมอ
- what_prefix = ตัวอักษร <----- กำหนดให้ตัวอักษรที่เราตั้งไว้นำหน้าข้อความเสมอ
- what_suffix = ตัวอักษร <----- กำหนดให้ตัวอักษรที่เราตั้งไว้ตามหลังข้อความเสมอ
- window_left_margin = 200 <----- กำหนดให้เฟรมอยู่ห่างจากจอด้านซ้ายไปกี่พิกเซล
- window_right_margin = 200 <----- กำหนดให้เฟรมอยู่ห่างจากจอด้านขวาไปกี่พิกเซล
- window_xmargin=20 <----- กำหนดให้เฟรมอยู่ห่างจากจอด้านซ้ายและขวาไปกี่พิกเซล
- window_ymargin=30 <----- กำหนดให้เฟรมอยู่ห่างจากจอด้านบนและล่างไปกี่พิกเซล
- window_yfill=True <----- กำหนดให้เฟรมมีขนาดใหญ่เต็มจอ
- window_yminimum = 300 <----- กำหนดความสูงของเฟรม
- what_underline = True <----- กำหนดให้ขีดเส้นใต้ใต้ข้อความเสมอ
- show_two_window = True <----- กำหนดให้แยกชื่อตัวละครกับเฟรมคำพูดออกมาอยู่คนละเฟรม
- show_side_image = ชื่อภาพ <----- กำหนดรูปไว้ในกรอบคำพูด โดยปกติแล้วมักจะประกาศรวมอยู่กับฟังก์ชัน image สามารถเรียกใช้งานได้ดังนี้
show_side_image = image(ชื่อภาพ, ypos=380, xpos=100) โดยที่
ypos = 380 <----- ตำแหน่งของภาพที่จะแสดงในแกน y
xpos = 100 <----- ตำแหน่งของภาพที่จะแสดงในแกน x
- ctc = ชื่อภาพ <----- รูปภาพท้ายข้อความเวลาจะขึ้นข้อความใหม่(สามารถใช้ร่วมกับ ฟังก์ชัน animetion ได้ ซึ่งจะขอกล่าวในบทถัดไป)
- ctc_position = "nestled" / "fixed" <----- nestled รูปภาพท้ายข้อความจะขึ้นอยู่ที่ท้ายข้อความ ในขณะที่ fixed จะทำให้ภาพไปอยู่ที่มุมขวาล่างเสมอ
- window_background = None <------ ไม่ต้องการให้มีเฟรมคำพูด
- show_say_vbox_properties = dict( xalign=0.5 , yalign=0.5) <----- กำหนดให้ตัวหนังสือทั้งหมดอยู่ห่างจากเฟรมด้านซ้าย(x) และเฟรมด้านบน(y) ตามที่เรากำหนด
ที่เหลือสามารถอ่านเพิ่มเติมได้ในนี้ครับ http://www.renpy.org/wiki/renpy/doc/reference/Properties_and_Styles |
 |
 |
โดย vashiya
เมื่อ September 12 2007 22:43:08
(879) อ่าน พิมพ์
|
 |
|
 |
© 2007 - 2010 thaiaat.com
|
 |
 |
|
Powered by v6.00.109 ฉ 2003-2005
Theme Elephant v1.00
|
|
 |