 |
บุคคลทั่วไป: 2
ไม่มีสมาชิกขณะนี้
สมาชิกทั้งหมด: 43
ยังไม่ยืนยัน: 0
สมาชิกล่าสุด: anyka
|
 |
|
|
Renpy Programming คำสั่งเบื้องต้นในการเขียน ตอนที่ 3 ( text, font, return, menu)
|
|
 |
เหอ...เหอ...เหอ...ช่วงนี้รู้สึกสุขใจจริงๆที่จะได้งาน 5555 กลับมาแล้วจ้า......หลังจากสอบตกสัมภาษณ์มาหลายที่ สำหรับเนื้อหาในช่วงนี้นั้นถือว่าไม่ยากเลยถ้าเทียบกับคราวที่แล้ว (แต่ไอการที่จะอธิบายให้คนอื่นเข้าใจนี่สิยากโคตรๆ) ซึ่งในบทนี้ไม่มีความซับซ้อนมากนักเนื้อหาในช่วงนี้จะเกี่ยวข้องกับ
- text
- font
- การ return และ ending
- การใช้ทางเลือกและmenu
text / font ตรงนี้อยากจะบอกว่าลักษณะการใช้งานนั้นมันเหมือนกับการใช้งานในภาษา HTML เลยล่ะ คือว่ามันจะมีลักษณะการใช้างานที่เป็น tag น่ะ โดยทั่วไปแล้วเราจะใช้งาคำสั่งลักษณะนี้ในกรอบคำพูดอ่ะนะ อย่างเช่น
e {b} ข้อความ {/b} , {i}italic{/i}
เอาล่ะเรามาเริ่มดูกันเลยดีกว่าว่ามันมีอะไรกันบ้างนะจ๊ะในส่วนนี้ เหอ...เหอ...เหอ...
- {b}bold{/b} <--- ตัวหนา
- {i}italic{/i} <--- ตัวเอียง
- {u}underlined{/u} <--- ขีดเส้นใต้
- {size=8}smaller{/size} <--- กำหนดขนาด
- {size=+12}bigger{/size} <--- เพิ่มขนาด
- {size=-8}smaller{/size} <--- ลดขนาด
- {w} ข้อความ <--- เบรคการขึ้นข้อความ(พอเราคลิกแล้วมันจะไปต่อ)
- {p} ข้อความ <--- เหมือนกับ{w}แต่จะขึ้นบรรทัดใหม่ด้วย
- {image = ชื่อรูป} <--- ใส่รูปลงไป
- {color=#f00}color{/color} <--- สีของข้อความ
- {a= ชื่อของ label } ข้อความ {/a} <--- ทำลิงค์ข้อความลักษณะการทำงานจะเหมือนกับคำสั่ง jump เลยล่ะ
- {font=filename.ttf}text{/font} <--- กำหนดfont ภาษา
- {plain} text {/plain} <--- ยกเลิกตัวหนา ตัวเอียง และขีดเส้นใต้ เมื่ออยู่ภายต้คำสั่งนี้ (จะมีผลก็ต่อเมื่อเราประกาศ ตัวหนา ตัวเอียง และขีดเส้นใต้ไว้ตั้งแต่ตอนที่เราประกาศ Character)
ต่อมาก็จะเป็นคำสั่งที่ใช้กำหนดให้ตัวหนังสือขึ้นที่กลางจอครับ โดยใช้คำสั่ง
centered"ข้อความ"
แต่มันก็มีข้อเสียอยู่บ้างตรงที่มันแก้ไขเพิ่มเติมอะไม่ได้แล้ว จะขึ้นมากลางจอดื้อๆเลย
font เกี่ยวกับ font มีการเรียกใช้งานอยู่ 2 อย่างครับคือ
1. เรียกใช้งาน font จากเครื่องที่เรามีอยู่แล้วเลย <------- ก็คือการเรียกใช้ font ตามที่เราเคยได้กล่าวถึงไปแล้วในบทที่ผ่านๆมาน่ะครับ(ลองย้อนไปอ่านเองละกัน) หากเราอยากจะเพิ่มเติม font ใหม่ๆลงไปก็สามรถ เอา file ของ font นั้นไปใส่ไว้ในที่เก็บ font ใน windows แล้วก็เรียกใช้งานตามปกติก็สามารถใช้ได้แล้วครับ
2. สร้าง font ขึ้นมาเองซะเลย ประกาศให้ทุกคนรู้ว่าตูเก่ง 5555 (เพี๊ยะ.......เกรียนแตก) โดยปกติเราเราสารถเรียกใช้ font ตามที่ windowsมีมาตั้งแต่เริ่มต้น จริงๆแล้วจะเพิ่มเติม font ใหม่ตามแบบที่หนึ่งก็ได้ (ง่ายดี....งั้นไม่ต้องสอนนะข้ามไปเลยละกัน 5555) แต่ถ้าทำอย่างงั้น font ตัวนี้มันก็จะสามาถเอาไปใช้กับโปรแกมตัวอื่นได้ มันทำให้เรารู้สึกไม่ค่อยเป็นส่วนตัวสักเท่าไหร่ต้องการอะไรทีมัน local กว่านี้ (5555ใจแคบจัง) เอาล่ะเรามาดูกันดีกว่าว่าจะทำยังไงเพื่อทำให้โปรแกรมรู้จักกับ font ใหม่ของเรา และสามารถตกแต่ง font ให้สวยใสถูกใจเรา
อย่างแรกเราต้องทำการประกาศให้โปรแกรมนั้นรู้จักกับ font ก่อนโดยการใช้ ฟังก์ชั่น renpy.register_sfont()มีหลักการใช้งานดังนี้
renpy.register_sfont(name,size,bold,italics,underline,filename,spacewidth,default_kern ,charset)
ฟังก์ชันตัวนี้นั้นเราจะประกาศอยู่ในส่วน init ของโปรแกรมครับโดยที่ parameter นั้นมีความหมายดังต่อไปนี้
name <----- ชื่อของ font (กำหนดเอง)
size <----- ขนาดของ font
bold = True/false <----- กำหนดfont ตัวหนา ถ้าไม่ประกาศถือว่าเป็น False
italics = True/false <----- กำหนดfont ตัวเอียง ถ้าไม่ประกาศถือว่าเป็น False
underline = True/false <----- กำหนดการขีดเส้นใต้ font ถ้าไม่ประกาศถือว่าเป็น False
filename = ชื่อไฟล์รูปภาพ <----- รูปของ font ใช้เป็น .png(ตรงนี้เราต้องวาดรูปออกมาเองเป็นสายของ font แต่ผมเองก็ไม่แน่ใจเหมือนกันว่าจะต้องเรียงอักษรตามอักขระรึเปล่านะใครว่าๆลองหน้อยละกัน)
spacewidth = 4 <----- ความกว้างของการเว้นวรรค(spacebar)
default_kern = -1 <----- กำหนดระยะห่างตัวอักษรของ font ทุกตัว
charset = u'123456......' <----- เซตของตัวอักษรที่เราต้องการให้เกมส์แสดงออกมา(ถ้าไม่กำหนดแสดงว่าเอาหมด)
kerns = {u' ตัวอักษร1 ตัวอักษร2 ' : ระยะห่างที่เราต้องการ , u' ตัวอักษร2 ตัวอักษร3' : ระยะห่างที่เราต้องการ,...} <----- กำหนดระยะห่างของตัวอักษรเป็นตัวๆไปเลยว่า A กะ B ห่างเท่าไหร่ B กะ C ห่างเท่าไหร่(บ้าพลังมั่กๆอย่าไปเสียเวลาทำเลย หรือถ้าใครว่างๆก็ลองมาทำชุดตัวอักษรพวกนี้แจกกันก็ได้)
ตัวนี้เราสามารถสร้างได้ 2 แบบครับคือแบบประกาศไปเลยตรงนั้นกับสร้างไฟล์ประกาศและกำหนดจากภายนอกจากนั้นก็ import ไฟล์ที่เราสร้างขึ้นมาเอง
แบบสร้างไฟล์ประกาศและกำหนดจากภายนอก มีขั้นตอนดังนี้
1. สร้างไฟล์มา 1 ไฟล์ชื่ออะไรก็ได้ จากนั้นให้ทำการพิมพ์คำสั้งนี้ลงไป
kerns = {u'ตัวอักษร1 ตัวอักษร2' : ระยะห่างที่เราต้องการ , u'ตัวอักษร2 ตัวอักษร3' : ระยะห่างที่เราต้องการ,...}
2. หลังจากที่เราระเบิดพลังในการเขียนเสร็จแล้วทีนี้เราก็จะมา save file ให้เรา save เป็น .py นะครับอย่าลืม(ไม่ใช่.rpy)
3. เมื่อถึงเวลาที่เราต้องการที่จะเรียกใช้งานนั้นให้เราทำการ import ไฟล์ของเราที่สร้างไว้ในส่วน init ด้วยครับโดยมีการประกาศใช้งานดังนี้ครับ
import ชื่อไฟล์ที่เราตั้งขึ้นมาจากขอที่ 1 อ่ะครับ(ไม่ต้องมี .py นะครับ)
4. ขั้นตอนสุดท้ายก็คือการเรียกใช้งานล่ะครับการเรียกใช้งานก็ดังนี้ครับ
kerns = ชื่อไฟล์ที่เราตั้งขึ้นมาจากขอที่ 1 .kerns <------ เช่น kerns = testfont.kerns (ไม่ต้องมี )
ตัวอย่างการใช้งาน เช่น renpy.register_sfont('subfont', 22,
filename="asfont22.png",kerns=asfont22.kerns,spacewidth=4)
จากนั้นก็ประกาศใช้ font ที่เราสร้างไว้ดังนี้
$ esub = Character(name,what_font="subfont")
ลองอ่านอ้างอิงดูจากตรงนี้ด้วยละกัน renpy.register_sfont
การ return และ ending ตรงส่วนนี้ก็ไม่มีอะไรมากมายนัก คำสั่ง return เปรียบเสมือนจุดสิ้นสุดของโปรแกรมที่เราได้สร้างไว้เมื่อเรามีการ call หรือ สร้างฟังก์ชันขึ้นมาจะต้องปิดป้ายด้วยคำสั่งนี้เสมอ เพื่อบอกกับโปรแกรมว่าฟังก์ชั่นนี้ได้สิ้นสุดลงแล้วและให้กลับไปลัง main โปรแกรมที่เราได้เขียนเอาไว้ การเรียกใช้งาน คำสั่ง return นั้นจะแบ่งการเรียกใช้งานได้เป็น 2 ลักษณะครับ คือ
1. ending การเรียกใช้ในลักษณะนี้จะเป็นการเรียกใช้งานเพื่อบอกให้เมื่อออกจากโปรแกรมนั้นแล้วก็ให้กลับไปยังหน้า main หลักของโปรแกรม มีหลักการใช้งานดังนี้
หน้า main.rpy
Codeบรรทัดที่ 1.......
Codeบรรทัดที่ 2.......
Codeบรรทัดที่ 3.......
Call A
Codeบรรทัดที่ 4.......
..........
หน้า A.rpy
Codeบรรทัดที่ 1.......
Codeบรรทัดที่ 2.......
Codeบรรทัดที่ 3.......
return
2. การ return ค่า จะคล้ายๆกับ ending แต่จะมีค่าตัวแปรตามออกมาด้วหลังจากจบโปรแกรมย่อยที่เราเขียนโดยปกติจะนิยมใช้ในการเขียน function ซึ่งการเขียนฟังก์ชั่นนั้นผมจะขกล่าวในบทหลังๆครับ ลักษณะการใช้งานคือ
return ตัวเลข,ค่าตัวแปร,ค่าString
Menu และทางเลือก ต่อมาก็เป็นการเลือก,ส่งค่าและแสดง menuซึ่งถือได้ว่าเป็นคำสั่งยอดฮิตของเกมส์แนวนี้เลยก็ว่าได้เอาล่ะเรามาดูกันดีกว่าว่ามันจะมีลักษณะการใช้ Menu ยังไง
menu name : <--------- name ในที่นี้หมายถึง ชื่อ Label ของmenu นี้(กำหนดเอง)
ข้อความคำถามของทางเลือกนั้น
"ทางเลือก 1" : <--------- ข้อความที่จะแสดงบนทางเลือกนั้น
Codeบรรทัดที่ 1.......
Codeบรรทัดที่ 2.......
Codeบรรทัดที่ 3.......
"ทางเลือก 2" if (XXXX) : <--------- เรายังสามารถที่จะใช้ คำสั่งif ภายในคำสั่ง menu ได้ด้วย
Codeบรรทัดที่ 1.......
Codeบรรทัดที่ 2.......
Codeบรรทัดที่ 3.......
...............
...............
with dissolve <--------- นอกจากนี้เรายังสามารถกำหนดลักษณะการปรากฏของ menu ด้วยคำสั่ง with ได้อีกด้วย
ส่วนหากอยากจะรู้ว่าการใช้คำสั่ง with โดยต้องการที่จะตั้งเป็นค่าอื่นๆนอกจาก dissolve นั้นามารถอ่านเพิ่มเติมได้จากที่นี่ Transitions
หมายเหตุ เวลาที่เขียนคำสั่งนี้เราต้องล่นบรรทัดเข้ามาด้วยครับ ดังรูป
|
 |
 |
โดย vashiya
เมื่อ October 09 2007 10:32:51
(692) อ่าน พิมพ์
|
 |
|
 |
© 2007 - 2010 thaiaat.com
|
 |
 |
|
Powered by v6.00.109 ฉ 2003-2005
Theme Elephant v1.00
|
|
 |