โดยหลักๆการเขียน Window ขึ้นมาใหม่จะมีส่วนสำคัญๆอยู่ 3 ตัวคือ
1.class -> ชื่อของ Window ที่ต้องการ
2.initialize -> ส่วนต่างๆของ Window เช่นความกว้าง,ยาว ฟอนท์ที่ใช้
3.refresh-> ส่วนแสดงเนื้อหา
ตัวอย่าง การเขียน Window ใหม่
Code:
class Window_ชื่อที่ต้องการ < Window_Base #ห้ามซ้ำกับชื่อ Window ทีมีอยู่แล้วไม่งั้นมันจะเรียกใช้ Window นี้แทนอันเก่า
# ------------------------
def initialize
super(ตำแหน่งแกนx, ตำแหน่งแกนy, ความกว้าง, ความสูง)
self.contents = Bitmap.new(width - 32, height - 32) #เป็นตำแหน่งแสดงตัวหนังสือ
self.opacity = 255 # ความโปร่งใสของกรอบ (ถ้าไม่อยากมีกรอบก็ตั้งเป็น 0)
self.contents.font.name = $fontface # ชนิดของฟอนท์ที่ใช้
self.contents.font.size = $fontsize # ขนาดของฟอนท์ที่ใช้
self.z = 5 #ลำดับชั้นของกรอบ (ถ้าตั้งเลขมากๆจะบังพวกกรอบเมนูหรือรูปภาพได้)
refresh
end#จบ initialize
# ------------------------
def refresh
self.contents.clear
<แสดงเนื้อหาตรงนี้>
end#จบ refresh
# ------------------------
end#จบ class
*******************************************************
การเรียกใช้หน้าต่าง
Show ContentSpoiler:
สามารถให้โชว์โดยใช้คำสั่ง"เรียกใช้สคริป"แล้วใส่ว่า
Code:
$ชื่ออะไรก็ได้ที่จำง่ายๆ = Window_ชื่อที่ตั้งไว้.new
ถ้าอยาก ให้
ลบหน้าต่างก็ใช้คำสั่ง"เรียกใช้สคริป"แล้วใส่ว่า
Code:
$ชื่ออะไรก็ได้ที่จำง่ายๆ.dispose
ถ้าอยาก ให้มีการ
อัพเดทหน้าต่างนั้นก็ใช้คำสั่ง"เรียกใช้สคริป"แล้วใส่ว่า
Code:
$ชื่ออะไรก็ได้ที่จำง่ายๆ.refresh
***คำสั่ง dispose กับ refresh ห้ามใช้ก่อนการเรียกวินโดว์เป็นอันขาด***ไม่งั้นจะเออเรอร์ทันที
การเอาพวกตัวหนังสือมาแสดง
Show ContentSpoiler:
จะใส่ว่า
Code:
self.contents.draw_text(ตำแหน่ง แกนX, ตำแหน่งแกนy, ความกว้างของตัวหนังสือ(ถ้าตัวหนังสือยาวมากต้องเพิ่มตรงนี้), ความสูงของตัวหนังสือ(ปกติเท่ากับ64), ต้อาให้แสดงอะไรตรงนี้.to_s)
ต.ย.ถ้าอยากให้เขียนว่า "มีเงินอยู่"
ก็ จะใส่ว่า
Code:
self.contents.draw_text(0, 0, 256, 64, "มีเงินอยู่")
กรณีเป็น ตัวหนังสือที่เรากำหนดเอง (อยู่ใน"") โดยเราไม่ต้องเขียน .to_s ก็ได้
แต่ถ้าเขียนข้อความที่แปลงมาจากตัวเลข เช่น อยากให้เขียนว่า มี"ความกล้า"กับ"ตัวแปรตัวที่ 1" ก็จะเขียนว่า
Code:
self.contents.draw_text(0, 0, 256, 64, "ความกล้า"+$game_variables[1].to_s)
มีอะไรบ้างที่เอามาแสดงได้
Show ContentSpoiler:
ตัวแปร = $game_variables[x].to_s
ชื่อฮีโร่คนแรกในกลุ่ม = $game_party.actors[0].name.to_s
ชื่อฮีโร่คนแรกในฐานข้อมูล = $game_actors[1].name.to_s
(ถ้าอยากให้แสดงค่าสแตตัสต่างๆก็ไปเปลื่ยนตรง name เป็นอย่างอื่น เช่น พลัง(str) ฉลาด(int) แทน)
ชื่อของไอเทม IDที่x= $data_items[x].name
จำนวนของไอเทม IDที่x = $game_party.item_number(x)
(ถ้าอยากให้เปลื่ยนเป็นอาวุธหรือเกราะก็ไปเปลื่ยนตรง item เป็นอย่างอื่น เช่น อาวุธ(weapon) เกราะ(armor) แทน)
จำนวนเงินที่มี = $game_party.gold.to_s
จำนวนก้าวเดิน = $game_party.steps.to_s
ถ้าอยากให้ตัวหนังสือชิดขวาหรืออยู่ตรงกลางทำอย่างไร
Show ContentSpoiler:
เพียงใส่เลขต่อท้ายเท่านั้นเอง
ตรงกลาง
.to_s,1
ชิดขวา
.to_s,2
กรณีให้ชิดขวาหรือตรงกลาง ถ้าเราปรับความกว้างของตัวหนังสือ เราต้องต้องปรับตำแหน่งแกน X ใหม่ด้วย
ถ้าอยากใส่สีให้ตัวอักษรทำอย่างไร
Show ContentSpoiler:
ให้ ใส่สคริปนี้ด้านบนของบรรทัดที่ต้องการเปลื่ยนสี
Code:
self.contents.font.color = Color.new(สีแดง, สีเขียว, สีน้ำเงิน, ความโปร่งใส่)
สีต่างๆ และความโปร่งใส่ใส่ได้ตั้งแต่ 0-255
ถ้าอยากให้ขนาดตัวอักษรแต่ละบรรทัดไม่เท่ากันทำอย่างไร
Show ContentSpoiler:
1.ไปลบ self.contents.font.size = $fontsize ตรงส่วน initialize ออก
2.ให้ ใส่สคริปนี้ด้านบนของบรรทัดที่ต้องการเปลื่ยนขนาด
Code:
self.contents.font.size = ขนาดที่ต้องการ(เลขเป็นตัวเต็มเท่านั้น)
ถ้าอยากเปลื่ยนฟอนท์ในแต่ละบรรทัดจะทำอย่างไร
Show ContentSpoiler:
1.ไปลบ self.contents.font.name = $fontface ตรงส่วน initialize ออก
2.ให้ใส่สคริปนี้ด้านบนของบรรทัดที่ต้องการเปลื่ยนฟอนท์
Code:
self.contents.font.name = "ชื่อของฟอนท์"
ถ้าอยากทำ ตัวหนา หรือ ตัวเฉียง ในแต่ละบรรทัดจะทำอย่างไร
Show ContentSpoiler:
ตัวหนาCode:
self.contents.font.bold = true
โดยเปลี่ยนคำด้านหลังคือ true(เปิด) false(ปิด)
ตัวเฉียงCode:
self.contents.font.italic = true
โดยเปลี่ยนคำด้านหลังคือ true(เปิด) false(ปิด)
ตย.การ เรียกใช้ WD
ต.ย.โชว์ชื่อฮีโร่คนแรก + ข้อความ + ตัวแปร
http://www.mediafire.com/?zo2dmgwqmmh
กด Q เพิ่มเปิด/ปิด หน้าต่าง ความกล้า
เครดิต : Shinryu