ระบบไฟฉาย
ระบบนี้พัฒนาขึ้นเอง โดยอาศัยภาพจากเว็บนี้
http://centrorpg.com/index.php?topic=11458.0 (ในเว็บเป็น Script ของ VX Ace แต่ลักษณะการเขียนไปคนละทาง
) รูปภาพมีการดัดแปลงเล็กน้อยให้เข้ากับ Script (รูปเดิมยังไม่ได้ revert ภาพ + ขนาดใหญ่ไม่พอ)
การติดตั้งและใช้งาน
1. ดาวน์โหลดรูปภาพไฟฉายจากลิงค์ด้านล่างนี้ ไปใส่ในโฟลเดอร์ Pictures ของโปรเจคเกม
รูปภาพLantern
2.ก็อปโค้ดด้านล่างนี้ไปวางเหนือ Main ใน Script โดยแก้ไขตัวแปรดังต่อไปนี้ให้เป็นตามที่ต้องการ
- $Flashlight_Switch คือ Switch ที่จะใช้ในการเปิดปิดระบบไฟฉาย (เผื่อกรณีเข้าฉากเหตุการ์ณ แล้วไม่อยากให้ระบบไฟฉายทำงาน) ค่าเริ่มต้นเป็น 1
- $Flashlight_Picture_Id คือ หมายเลขรูปภาพ (ตามปกติเวลาใช้คำสั่ง Show/Move/Erase Pictures จะมีให้ใส่หมายเลขภาพ ก็คือใส่อันนั้นแหละ มีค่าตั้งแต่ 1 - 50) ค่าเริ่มต้นเป็น 1
- $Flashlight_Picture คือ ชื่อรูปภาพ หากโหลดไฟล์ตัวอย่างให้ใช้ค่าพื้นฐานเลยคือ Lantern
- $Flashlight_Key คือ ปุ่มที่จะใช้กดเปิดปิด ไฟฉาย ค่าเริ่มต้นคือ X (คือปุ่ม A บนคีย์บอร์ด) สามารถดูค่าปุ่มได้โดยการกด F1
- $Flashlight_Darkness คือ ค่าความมืด มีค่าตั้งแต่ 0 - 255 (255 จะมืดที่สุด) ค่าเริ่มต้น คือ 128
Code:
#==============================================================================
# Simple Flashlight 1.0.1
#------------------------------------------------------------------------------
# Credit: XthemeCore
#==============================================================================
$Flashlight_Switch = 1 # ต้องมีค่ามากกว่า 0
$Flashlight_Picture_Id = 1 # ต้องมีค่าระหว่าง 1 - 50
$Flashlight_Picture = "Lantern"
$Flashlight_Key = Input::X
$Flashlight_Darkness = 128
#==============================================================================
# **Game_Picture
#------------------------------------------------------------------------------
# เขียนทับตัวแปร angle ใน Game_Picture เพื่อให้สามารถเข้าถึงค่าองศาของรูปได้
#==============================================================================
class Game_Picture
attr_accessor :angle # องศาของรูปภาพ
end
#==============================================================================
# ** Scene_Map
#------------------------------------------------------------------------------
# เขียนทับ Update เพื่อตรวจสอบการกดปุ่มเปิดไฟฉาย
#==============================================================================
class Scene_Map
alias overwrite_update update
def update
overwrite_update
flashlight_update
end
#--------------------------------------------------------------------------
# อัพเดตระบบไฟฉาย
#--------------------------------------------------------------------------
def flashlight_update
if $game_switches[$Flashlight_Switch] == true
if $flashlight_spark == nil
$game_screen.start_tone_change(Tone.new(-$Flashlight_Darkness, -$Flashlight_Darkness, -$Flashlight_Darkness,0), 2)
$flashlight_spark = false
end
if Input.trigger?($Flashlight_Key)
if $flashlight_spark == false
$game_screen.start_tone_change(Tone.new(0,0,0,0), 0)
$game_screen.pictures[$Flashlight_Picture_Id].show($Flashlight_Picture, 1, $game_player.screen_x, $game_player.screen_y, 100, 100, $Flashlight_Darkness, 2)
flashlight_direction_update
$flashlight_spark = true
else
$game_screen.start_tone_change(Tone.new(-$Flashlight_Darkness, -$Flashlight_Darkness, -$Flashlight_Darkness,0), 2)
$flashlight_spark = false
$game_screen.pictures[$Flashlight_Picture_Id].move(2, 1, $game_player.screen_x, $game_player.screen_y, 100, 100, 0, 2)
flashlight_direction_update
end
elsif $flashlight_spark == true
$game_screen.pictures[$Flashlight_Picture_Id].move(2, 1, $game_player.screen_x, $game_player.screen_y, 100, 100, $Flashlight_Darkness, 2)
flashlight_direction_update
end
end
end
#--------------------------------------------------------------------------
# อัพเดตทิศทางไฟฉาย
#--------------------------------------------------------------------------
def flashlight_direction_update
case $game_player.direction
when 2
$game_screen.pictures[$Flashlight_Picture_Id].angle = 0
when 4
$game_screen.pictures[$Flashlight_Picture_Id].angle = 270
when 6
$game_screen.pictures[$Flashlight_Picture_Id].angle = 90
when 8
$game_screen.pictures[$Flashlight_Picture_Id].angle = 180
end
end
end
3.ให้สร้างเหตุการ์ณที่ทำให้ Switch สำหรับเปิดระบบไฟฉาย เป็น on แล้วทดลองกดปุ่มตามที่ตั้งไว้ดู (ค่าเริ่มต้นคือปุ่ม A บนคีย์บอร์ด)
ตัวอย่าง
สามารถโหลดไฟล์ตัวอย่างได้ที่นี่
ลิงค์
คำแนะนำ- ภาพควรมีขนาด 1600x1600
- ถ้าต้องการปรับค่าความมืดด้วย Event (เช่น บางฉากต้องการให้ความมืดต่างกัน) ให้ใช้ Call Script แล้วใส่คำสั่ง $Flashlight_Darkness = XXX โดย XXX แทนค่าความมืดมีค่าระหว่าง 0-255
Credit
XthemeCore