การเขียน Script อย่างง่ายๆ บทที่ 3 การเขียน Scene เมนูต่างๆ
หน้า 1 จาก 1
การเขียน Script อย่างง่ายๆ บทที่ 3 การเขียน Scene เมนูต่างๆ
โดยหลักๆการเขียน Scene ขึ้นมาใหม่จะมีส่วนสำคัญๆอยู่ 3 ตัวคือ
1.class -> ชื่อของ Scene ที่ต้องการ
2.main -> เป็นส่วนกำหนดว่าต้องการเรียกใช้ Window อะไรบ้าง
3.update-> เป็นส่วนให้กำหนดว่าเวลาเรากดคีย์ใดๆ แล้วจะเกิดอะไรขึ้น
ตัวอย่างการเขียน Scene ใหม่
คัดลอกไปที่คลิปบอร์ด
loop ที่อยู่ด้านล่าง
Graphics.transition เอาไว้สำหรับตรวจเช็คว่าหน้าเมนูนั้น ๆ
ถูกโหลดขึ้นมาหรือยังน่ะครับ (ถ้าจำไม่ผิดนะ)
ถ้ายังโหลดไม่ขึ้นก็จะลูปไปเรื่อย ๆ จนกว่าจะโหลดขึ้น ถึงออกจากลูป
การเรียกใช้ window ใดๆใน Scene นี้จะไม่ยุ่งเกี่ยวกับ Scene
จึงสามารถกำหนด เพิ่ม/ลด window หรือตำแหน่งของ window ใน Scene นี้ได้เลย
เช่น
กำหนดความโปร่งใส
คัดลอกไปที่คลิปบอร์ด
.
ตำแหน่งแกน x
คัดลอกไปที่คลิปบอร์ด
.
ตำแหน่งแกน y
คัดลอกไปที่คลิปบอร์ด
.
กว้างของวินโดว์
คัดลอกไปที่คลิปบอร์ด
.
ความสูงของวินโดว์
คัดลอกไปที่คลิปบอร์ด
.
โดยหลักๆคือใส่ต่อหลังจากเรียก window เรียบร้อยแล้ว
เช่นถ้าต้องการปรับความสูงของ Window_Help เป็น 64 ก็จะใส่ว่า
คัดลอกไปที่คลิปบอร์ด
.
.
การเรียกใช้ Scene
ใช้คำสั่งเรียกใช้สคริปแล้วเรียกว่า
คัดลอกไปที่คลิปบอร์ด
.
ตย.การ เรียกใช้ Scene
เนื้อหาถูกซ่อน จะแสดงได้ก็ต่อเมื่อคุณทำการแสดงความเห็น
เครดิต : Shinryu
1.class -> ชื่อของ Scene ที่ต้องการ
2.main -> เป็นส่วนกำหนดว่าต้องการเรียกใช้ Window อะไรบ้าง
3.update-> เป็นส่วนให้กำหนดว่าเวลาเรากดคีย์ใดๆ แล้วจะเกิดอะไรขึ้น
ตัวอย่างการเขียน Scene ใหม่
- class Scene_ชื่อที่ต้องการ #ชื่อ Scene ที่ต้องการ
- def main
- s0 = "เนื้อหา 1"
- s1 = "เนื้อหา 2"
- s2 = "เนื้อหา 3"
- # กำหนดคอมมานว่ามีอะไรบ้าง
- # 200คือความกว้างWindow ส่วนเลข s0-3 คือตัวหนังสือตามที่เรากำหนด
- @command_window = Window_Command.new(200, [s0, s1, s2])
- # ตำแหน่งแกน y ของ command_window
- @command_window.y = 64
- # เรียกใช้หน้าต่าง help
- @note_window = Window_Help.new
- # เริ่มเรียกใช้ Scene และเรียก window ทั้งหมด
- Graphics.transition
- loop do
- Graphics.update
- Input.update
- update
- if $scene != self
- break
- end
- end
- Graphics.freeze
- #ลบ window ต่างๆเมื่อออก
- @command_window.dispose
- @note_window.dispose
- end #จบ main
- #--------------------------------------------------------------------------
- def update
- # เมื่อตำแหน่ง เคอเซอร์อยู่ที่ when ใดก็ให้โชว์ข้อความนั้นๆที่ window help
- case @command_window.index
- when 0
- @note_window.set_text("แสดงคำอธิบายเนื้อหา 1", 0)
- when 1
- @note_window.set_text("แสดงคำอธิบายเนื้อหา 2", 0)
- when 2
- @note_window.set_text("แสดงคำอธิบายเนื้อหา 3", 0)
- end
- #อัพเดทตำแหน่งเคอเซอร์
- @command_window.update
- # เมื่อกด X (ยกเลิก)
- if Input.trigger?(Input::B)
- # เรียกใช้เสียงเวลากด cancel
- $game_system.se_play($data_system.cancel_se)
- # ไปหน้าจอ
- $scene = Scene_Map.new
- # จบการเช็คเมื่อกด X
- end
- # เมื่อกด C (ตกลง)
- if Input.trigger?(Input::C)
- # เรียกใช้เสียงเวลากด ตกลง
- $game_system.se_play($data_system.decision_se)
- # เมื่อตำแหน่ง เคอเซอร์อยู่ที่ when ใดเวลากด C ก็ให้เกิดเหตุการณ์นั้นๆ
- case @command_window.index
- when 0
- เหตุการณ์ 1
- when 1
- เหตุการณ์ 2
- when 2
- เหตุการณ์ 3
- end
- # ตรงนี้อาจมีการเรียกใช้ Scene นี้อีกครั้งเพื่ออัพเดทข้อมูลหลังจากกด C
- $scene = Scene_ชื่อที่ต้องการ.new
- end
- end
- end
คัดลอกไปที่คลิปบอร์ด
loop ที่อยู่ด้านล่าง
Graphics.transition เอาไว้สำหรับตรวจเช็คว่าหน้าเมนูนั้น ๆ
ถูกโหลดขึ้นมาหรือยังน่ะครับ (ถ้าจำไม่ผิดนะ)
ถ้ายังโหลดไม่ขึ้นก็จะลูปไปเรื่อย ๆ จนกว่าจะโหลดขึ้น ถึงออกจากลูป
การเรียกใช้ window ใดๆใน Scene นี้จะไม่ยุ่งเกี่ยวกับ Scene
จึงสามารถกำหนด เพิ่ม/ลด window หรือตำแหน่งของ window ใน Scene นี้ได้เลย
เช่น
กำหนดความโปร่งใส
- ชื่อวินโดว์.opacity = 0 ถึง 255
คัดลอกไปที่คลิปบอร์ด
.
ตำแหน่งแกน x
- ชื่อวินโดว์.x = 0 ถึง 640
คัดลอกไปที่คลิปบอร์ด
.
ตำแหน่งแกน y
- ชื่อวินโดว์.y = 0 ถึง 480
คัดลอกไปที่คลิปบอร์ด
.
กว้างของวินโดว์
- @status_window.width = 0 ถึง 640
คัดลอกไปที่คลิปบอร์ด
.
ความสูงของวินโดว์
- @status_window.height = 0 ถึง 480
คัดลอกไปที่คลิปบอร์ด
.
โดยหลักๆคือใส่ต่อหลังจากเรียก window เรียบร้อยแล้ว
เช่นถ้าต้องการปรับความสูงของ Window_Help เป็น 64 ก็จะใส่ว่า
- @note_window = Window_Help.new
- @note_window.height = 64
คัดลอกไปที่คลิปบอร์ด
.
.
การเรียกใช้ Scene
ใช้คำสั่งเรียกใช้สคริปแล้วเรียกว่า
- $scene = Scene_ชื่อที่ต้องการ.new
คัดลอกไปที่คลิปบอร์ด
.
ตย.การ เรียกใช้ Scene
เนื้อหาถูกซ่อน จะแสดงได้ก็ต่อเมื่อคุณทำการแสดงความเห็น
เครดิต : Shinryu
หน้า 1 จาก 1
Permissions in this forum:
คุณไม่สามารถพิมพ์ตอบ