Raccoon Game RPG รวมพลนักพัฒนา
การเขียน Script อย่างง่ายๆ บทที่ 4 การรวม Scene กับ Window Rpgvx_1024x768b

Join the forum, it's quick and easy

Raccoon Game RPG รวมพลนักพัฒนา
การเขียน Script อย่างง่ายๆ บทที่ 4 การรวม Scene กับ Window Rpgvx_1024x768b
Raccoon Game RPG รวมพลนักพัฒนา
Would you like to react to this message? Create an account in a few clicks or log in to continue.

การเขียน Script อย่างง่ายๆ บทที่ 4 การรวม Scene กับ Window

Go down

การเขียน Script อย่างง่ายๆ บทที่ 4 การรวม Scene กับ Window Empty การเขียน Script อย่างง่ายๆ บทที่ 4 การรวม Scene กับ Window

ตั้งหัวข้อ by boyhit Mon Oct 17, 2011 1:42 am

จริงๆไม่มีอะไรมากก็แค่วางต่อกันไปเลย เช่น
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
# ------------------------------------------------------------------------
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
    # เรียกใช้หน้าต่างที่เราสร้างข้างบน
    @ชื่อที่ต้องการ_window = Window_ชื่อที่ต้องการ.new
    @ชื่อที่ต้องการ_window.x = 128 #ตำแหน่งที่จะวางแกนx
    @ชื่อที่ต้องการ_window.y = 0 #ตำแหน่งที่จะวางแกนy
    # เรียกใช้หน้าต่าง 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
    @ชื่อที่ต้องการ_window.dispose #พิมพ์ตัวนี้เพิ่มเข้ามา
    @note_window.dispose
  end #จบ main
#--------------------------------------------------------------------------
  def update
    @ชื่อที่ต้องการ_window.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
เพียงแต่มีการเพิ่ม
เรียก ใช้วินโดว์
Code:
@ชื่อที่ต้องการ_window = Window_ชื่อที่ต้องการ.new
ลบวินโดว์
Code:
@ชื่อที่ต้องการ _window.dispose
อัพเดทวินโดว์
Code:
@ชื่อที่ต้อง การ_window.update
ที่เรา สร้างเพิ่มขึ้นนั่นเอง

>>เราสามารถสร้าง วินโดว์มากกว่า 1 อันได้ใน Scene เดียว<<
โดยเราต้องเรียกใช้ให้ครบด้วย เพราะถ้าไม่เรียกใช้มันก็ไม่โชว์นั่นเอง{:2_30:}


การเรียกใช้ Scene
ใช้ คำสั่งเรียกใช้สคริปแล้วเรียกว่า
Code:
$scene = ชื่อ Scene ที่เราตั้งไว้.new
แค่นี้เราก็จะได้สคริปแบบเมนูที่คนอื่นเขาแจกๆกัน แล้วนั่นเอง {:3_52:}
.
.
กรณีที่เรายังไม่ต้องการให้โชว์วินโดว์ไหน เราสามารถทำได้ โดยใส่โค๊ตว่า
Code:
@ชื่อที่ต้องการ_window.visible = false
ต่อจากเรียกใช้วินโดว์ที่ต้องการ

เวลาต้องการโชว์ก็เปลื่ยนจาก false เป็น true
.
.
กรณีที่เรายังต้องการเลือกซ้อนกันหลายๆครั้ง เช่น เรียกสคริปว่าจะฝากหรือถอนเงิน จากนั้นก็แสดงวินโดว์ซ้อนไปว่าจะฝ่ากเท่าไรไปอีกชั้น
(ดูตัวอย่างในลิงค์ด้านล่าง)
Code:
@ชื่อที่ต้องการ_window.active = false #ยังไม่ใช้
ต่อจากเรียกใช้วินโดว์ที่ต้องการ

เวลาต้องการโช้ก็เปลื่ยนจาก false เป็น true และต้องเปลื่ยน @command_window.active = false(คอมมานตัวหลัก) ให้ปิดด้วย
.
.
ถ้าอยากให้เห็นพื้นหลังเลยไม่ใช้หน้าจอดำๆ ให้ใส่สคริป
Code:
@map = Spriteset_Map.new
ใต้
Code:
def main
และ ไปที่มีการลบวินโดว์ต่างๆ(ใต้ Graphics.freeze) ใส่แทรกไปว่า
Code:
@map.dispose
เป็นอัน เสร็จเรียบร้อย (ดูตัวอย่างด้านล่าง)
**วิธีนี้ใช้ได้กับสคริปเมนูทุกชนิด**

<blockquote>ต.ย.สคริปธนาคาร (แบบกรอกตัวเลขได้ตามใจชอบ)
การเขียน Script อย่างง่ายๆ บทที่ 4 การรวม Scene กับ Window Umss1การเขียน Script อย่างง่ายๆ บทที่ 4 การรวม Scene กับ Window Zxss2การเขียน Script อย่างง่ายๆ บทที่ 4 การรวม Scene กับ Window U2ss3
-เมื่อเลือกว่าจะฝากหรือถอน จะมีตัวเลขขึ้นว่าจะใส่จำนวนเงินเท่าใด
-เมื่อกดเอนเตอร์ ถ้ามีจำนวนเงินถูกต้องจะฝาก/ถอน ได้ทันที</blockquote>



ตย.การใช้ Scene Window
เนื้อหาถูกซ่อน จะแสดงได้ก็ต่อเมื่อคุณทำการแสดงความเห็น




เครดิต : Shinryu
boyhit
boyhit
Admin
Admin

ชื่อเล่น : เเอล
ความฝัน : ศิลปิน
จำนวนข้อความ : 1130
เครดิต : 3356
วันที่สมัคร : 09/10/2011
คะเเนนน้ำใจ : 11
เพศ : Male อายุ : 24
เหรียญรางวัล : การเขียน Script อย่างง่ายๆ บทที่ 4 การรวม Scene กับ Window Medalhead2

https://raccoongame-rpg.thai-forum.net

ขึ้นไปข้างบน Go down

ขึ้นไปข้างบน

- Similar topics

 
Permissions in this forum:
คุณไม่สามารถพิมพ์ตอบ