สวัสดีค่ะท่านผู้มาเยือน!  ลงชื่อเข้าใข้งาน สมัครสมาชิก

Post Reply 
 
Thread Rating:
  • 2 Votes - 5 Average
  • 1
  • 2
  • 3
  • 4
  • 5
RGSS1 การเขียน Script อย่างง่ายๆ บทที่ 3 การเขียน Scene เมนูต่างๆ
07-25-2012, 11:59 AM (โพสต์นี้ถูกแก้ไขครั้งสุดท้ายเมื่อ: 08-03-2012 09:39 PM โดย Shinryu.)
โพสต์: #1
การเขียน Script อย่างง่ายๆ บทที่ 3 การเขียน Scene เมนูต่างๆ
[ภาพ: ss-sc-1.png]

โดยหลักๆการเขียน Scene ขึ้นมาใหม่จะมีส่วนสำคัญๆอยู่ 3 ตัวคือ

1.class -> ชื่อของ Scene ที่ต้องการ
2.main -> เป็นส่วนกำหนดว่าต้องการเรียกใช้ Window อะไรบ้าง
3.update-> เป็นส่วนให้กำหนดว่าเวลาเรากดคีย์ใดๆ แล้วจะเกิดอะไรขึ้น

ตัวอย่างการเขียน Scene ใหม่
Code:
class Scene_ชื่อที่ต้องการ #ชื่อ Scene ที่ต้องการ
  def main
    # กำหนดช้อยส์คอมมานที่จะให้เลือกว่ามีอะไรบ้าง โดยเพิ่มเลขหลัง s ไปเรื่อยๆ
    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 #เลือนกรอบลงมา 64พิคเซคเพื่อเหลือพื้นที่ใ้ห้ช่อง Help
    # เรียกใช้หน้าต่าง 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 ต่างๆเมื่อออกจาก Scene
    @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 นี้ จะไม่ยุ่งเกี่ยวกับ window เดียวกันในหน้าต่างอื่น
จึงสามารถกำหนด เพิ่ม/ลด window หรือตำแหน่งของ window ใน Scene นี้ได้เลย เช่น
Spoiler:
การทำพื้นหลัง Scene แบบโปร่งใส่ (เห็นแม็บ)
Spoiler:
การใส่พื้นหลังให้ Scene
Spoiler:
การเรียกใช้ Scene
Spoiler:

ตย.การ เรียกใช้ Scene
ต.ย.เมนูเปลี่ยนฟอนท์ระหว่างเล่น
[ภาพ: ss-sc-1.png][ภาพ: ss-sc-2.png][ภาพ: ss-sc-3.png]
http://www.mediafire.com/?mxmn0xygixj

เครดิต : Shinryu


การทำพื้นหลังเลื่อนไว้บทในบทการอัพเดทวินโดว์ละกัน

[ภาพ: 7f7cb68ce0.png][ภาพ: rlogo.png]
Spoiler:
เข้าสู่เว็บไซต์ของสมาชิกผู้นี้ ค้นหาโพสต์ทั้งหมดของสมาชิกผู้นี้
Like Post อ้างอิงข้อความนี้ตอนตอบกระทู้ firefox windows xp
[-] The following 4 users Like Shinryu's post:
ACSII (08-31-2012), Jirayu (07-25-2012), LuZi (07-25-2012), Muge9thD (07-26-2012)
07-26-2012, 01:22 PM
โพสต์: #2
RE: การเขียน Script อย่างง่ายๆ บทที่ 3 การเขียน Scene เมนูต่างๆ
การใส่พื้นหลังให้ Scene นี่คือ การใส่ภาพลงไปสินะฮะ?

แบบนี่ถ้าเราทำภาพแบบเหมือนกรอบเมนูแล้วโชว์เป็นพื้นหลัง แล้วปรับOpacity ของวินโดวสกินให้เหลือ 0 หรือไม่มีวินโดวสกิน
ก็จะได้เมนูแบบพื้นหลังเป็นภาพได้ใช่มั้ยฮะ? ส่วนตัวอยากได้วิธีทำของRGSS3 ในVX Ace ด้วย TwT

[ภาพ: RG2015_zps4ac655d4.png][ภาพ: fc6330f76f34ef1d.png]
เข้าสู่เว็บไซต์ของสมาชิกผู้นี้ ค้นหาโพสต์ทั้งหมดของสมาชิกผู้นี้
Like Post อ้างอิงข้อความนี้ตอนตอบกระทู้ firefox windows 7
07-26-2012, 07:18 PM
โพสต์: #3
RE: การเขียน Script อย่างง่ายๆ บทที่ 3 การเขียน Scene เมนูต่างๆ
เยี่ยมยอด!! นี่คือความรู้ที่หลายๆคนต้องการ!!!

* Muge9thD ลืมวิธีทำให้เมนูเห็นแม็บ ทำหน้าเหยาหมิง ขอบคุณมากๆเลยนะท่าน m(_ _)m
ค้นหาโพสต์ทั้งหมดของสมาชิกผู้นี้
Like Post อ้างอิงข้อความนี้ตอนตอบกระทู้ rockmelt windows 7
[-] The following 1 user Likes Muge9thD's post:
TheMoo2000 (11-30-2012)
07-26-2012, 07:45 PM (โพสต์นี้ถูกแก้ไขครั้งสุดท้ายเมื่อ: 07-26-2012 07:49 PM โดย Shinryu.)
โพสต์: #4
RE: การเขียน Script อย่างง่ายๆ บทที่ 3 การเขียน Scene เมนูต่างๆ
@LuZi + @Muge9thD

ส่วนนี้น้อ การทำพื้นหลัง Scene แบบโปร่งใส่ (เห็นแม็บ)

ถ้าแค่ปรับ Opacity เป็น 0 มันจะเป็นแค่หน้าจอดำๆ ดูในตัวอย่างก็ได้

[ภาพ: 7f7cb68ce0.png][ภาพ: rlogo.png]
Spoiler:
เข้าสู่เว็บไซต์ของสมาชิกผู้นี้ ค้นหาโพสต์ทั้งหมดของสมาชิกผู้นี้
Like Post อ้างอิงข้อความนี้ตอนตอบกระทู้ firefox windows xp
[-] The following 1 user Likes Shinryu's post:
TheMoo2000 (11-30-2012)
Post Reply 


ข้ามไปบอร์ด:


User(s) browsing this thread: 1 Guest(s)

Download Opera - A faster and more secure Web browser.