หาสาเหตุที่ทำให้แล๊กในฉากแผนที่เจอแล้วครับ หะหะ...
เป็นที่ส่วน HUD โชว์ชื่อแผนที่ของผมเองครับ
HUD ของผมจะเช็คชื่อแผนที่อยู่ตลอดเวลาที่อยู่ในซีนฉากเดิน ถ้าเปลี่ยนแผนที่ชื่อแผนที่ก็จะเปลี่ยน ผมก็สั่งให้ HUD มันรีเฟรชทีนึง
รีเฟรช HUD นี้เมื่อเปลี่ยนแมพเท่านั้น ฟังดูแล้วก็ไม่น่าจะแล๊กชิมิครับ
แต่ทีนี้...เรามาดูตัวนี้...
Code:
class Game_Map
attr_reader :map_id
def mpname
$mpname = load_data("Data/MapInfos.rxdata")
$mpname[@map_id].name
end
end
ทุกครั้งที่มีการเช็คชื่อแผนที่ มันจะโหลดไฟล์ MapInfos.rxdata มาเก็บใส่ตัวแปรครับ...
หา? HUD ของผมเช็คชื่อแผนที่ทุกเฟรม ก็เท่ากับมันโหลดไฟล์นี้มาเก็บใส่ตัวแปรมันทุกเฟรม???
มันก็แล๊กน่ะสิฟร้าาาาาาาาาาาาาาาาา!!
ผมเลยแก้ไขด้วยวิธีนี้
Code:
############
# Game_Map #
############
class Game_Map
attr_reader :map_id
def mpname
$mpname = load_data("Data/MapInfos.rxdata") if $mpname == nil
$mpname[@map_id].name
end
end
ให้โหลดไฟล์ MapInfos.rxdata มาเก็บในตัวแปรเฉพาะกรณีที่หาตัวแปรนี้ไม่เจอเท่านั้น
เท่ากับว่าหลังจากโหลดชื่อแผนที่เก็บไว้หนนึงแล้ว จะไม่มีการโหลดอีกในการเรียกเช็คชื่อแผนที่ครั้งต่อไป
ผลจากการทดสอบ ลื่นไหลขึ้นมาพอสมควรครับ ^ ^
ไว้ค่อยไปทดสอบที่ร้านที่เคยลองแล้วแล๊กต่อ หวังว่าจะได้ผลออกมาเป็นที่น่าพอใจ เหอเหอ...