irpg Community
[GML]การโหลดทรัพยากรภายนอก - Printable Version

+- irpg Community (https://irpg.in.th)
+-- Forum: irpg Fabella Game Maker Academia (https://irpg.in.th/forum-29.html)
+--- Forum: The Great Game Maker Library (https://irpg.in.th/forum-31.html)
+--- Thread: [GML]การโหลดทรัพยากรภายนอก (/thread-736.html)



[GML]การโหลดทรัพยากรภายนอก - gol-a-khung - 11-05-2012

คำสั่งโหลดทรัพยากรจากภายนอก
สวัสดีครับ ผมนายโกลเอ้เจ้าเก่า วันนี้เสนอการดึงเอาไฟล์ที่เตรียมไว้มาใส่ในเกมส์ครับ สำคัญมากในกรณีที่เกมส์ของเรามันใหญ่เวอร์
(เจ้าตัวก็เป็นปัญหานี้ เพราะกราฟฟิคที่ใช้มันใหญ่จริงๆ ทำให้การโหลดเกมส์ช้ามากมายแถมสิ้นเปลืองหน่วยความจำโดยใช่เหตุ)
หลักๆเลยจะมีการโหลดทรัพยากร 3 แบบอย่างด้วยกัน คือ
1. การโหลดภาพตัวละครหลัก
2. การโหลดภาพประกอบฉาก
3. การโหลดเสียงประกอบฉากและเสียงเอฟเฟคต่างๆ
โฟเดอร์ในการเก็บข้อมูลจำเป็นต้องอยู่ที่เดียวกันกับตัวรันเกมส์นะครับ ย้ำนะครับโฟเดอร์ในการเก็บข้อมูล
ในตัวอย่างข้อมูลต่างๆ จะจัดอยู่ที่โฟเดอร์ชื่อ data ครับ

มาดูอย่างแรกกันครับ การโหลดภาพตัวละคร (Sprite)
คำสั่ง
sprite_add(fname,imgnumb,removeback,smooth,xorig,yorig)
อธิบายคำสั่ง
จะเริ่มต้นด้วย sprite_add ตามด้วยภายในวงเล็บ (fname,imgnumb,removeback,smooth,xorig,yorig)
fname คือ ตำแหน่งในการเก็บข้อมูล โดยขึ้นรูปประโยคว่า working_directory + "ที่อยู่ของข้อมูลพร้อมข้อมูล.นามสกุล"
imgnumb คือ ลำดับภาพของข้อมูลภาพ
removeback คือ ลบสีพื้นหลังภาพออก กำหนดโดย true กับ false
smooth คือ การปรับความคมชัดของภาพ กำหนดโดย true กับ false
xorig คือ การกำหนดค่าเริ่มต้นของภาพในแนวแกน x (อ้างอิงจากค่าพิกเซลภาพเป็นหลัก)
yorig คือ การกำหนดค่าเริ่มต้นของภาพในแนวแกน y (อ้างอิงจากค่าพิกเซลภาพเป็นหลัก)
ตัวอย่างคำสั่ง
sprite_add(working_directory + "\data\ex_001.gif",1,false,true,false,true,0,0);

แบบที่ 2 ครับ การโหลดภาพประกอบฉาก
คำสั่ง
background_add(fname,removeback,smooth)
อธิบายคำสั่ง
เริ่มด้วยคำสั่ง background_add ตามด้วยภายในวงเล็บ (fname,removeback,smooth)
fname คือ ตำแหน่งในการเก็บข้อมูล โดยขึ้นรูปประโยคว่า working_directory + "ที่อยู่ของข้อมูลพร้อมข้อมูล.นามสกุล"
removeback คือ ลบสีพื้นหลังภาพออก กำหนดโดย true กับ false
smooth คือ การปรับความคมชัดของภาพ กำหนดโดย true กับ false
ตัวอย่างคำสั่ง
background_add(working_directory + "\data\ex_002.bmp",false,false,false);

แบบสุดท้าย การโหลดเสียงประกอบฉากและเสียงเอฟเฟคต่างๆ
คำสั่ง
sound_add(fname,kind,preload)
อธิบายคำสั่ง
เริ่มด้วยคำสั่ง sound_add ตามด้วยภายในวงเล็บ (fname,kind,preload)
fname คือ ตำแหน่งในการเก็บข้อมูล โดยขึ้นรูปประโยคว่า working_directory + "ที่อยู่ของข้อมูลพร้อมข้อมูล.นามสกุล"
kind คือ ชนิดของเสียง (0 = ปกติ, 1 เสียงของฉาก, 2 = 3d, 3 = mmplayer)
preload คือ การกำหนดให้บันทีกเสียงไว้หน่วยความจำ กำหนดโดย true กับ false
ตัวอย่างคำสั่ง
sound_add(working_directory + "\data\ex_003.wav",0,true);

คำสั่งต้องถูกสร้างหรือเรียกใช้ภายในออปเจ็กตัวเองครับ ถ้าต้องการสร้างแยกไว้ ควรใช้ globalกำหนด นะครับ ไม่งั้นขึ้นผิดพลาดแน่นอนครับ
และอย่าลืม ที่อยู่ของข้อมูลในการโหลดนำมาใช้นะครับ ถ้าลืมผิดพลาดเช่นกัน (Error...!!)
ผิดพลาดประการใด โพสตอบในกระทู้นี้ได้เลยอย่ารีรอนะครับ เพราะผมมือใหม่อาจทำผิดๆ ถูกๆ แต่ก็ขอให้ได้ทำจะได้รู้ว่าผิดอย่างไรตรงไหน
เพื่อจะได้รีบแก้ไขต่อไปครับ ขอบคุณที่เข้ามาอ่านครับ