GML
สวัสดีครับ ผมโกลเอ้คุง จากบทความตอนที่แล้วเป็นการกำหนดค่าเคลื่อนที่
[GML]คำสั่งการเคลื่อนที่ (ผู้เริ่มต้น)
ติดตามได้ลิงค์ด้านบนครับ ส่วนในบทนี้จะเป็นการกำหนดสิ่งกีดขวาง
ตามตัวอย่างเวลาเราวิ่งอยู่รอบต้นไม้จะไม่ทับหรือเข้าไปอยู่ในต้นไม้ ส่วนด้านบนก็มีใบไม้ปิดเล็กน้อย
บทนี้จะมาสอนวิธีทำครับ ตั้งแต่ต้นจนเสร็จตามตัวอย่างครับ
ขั้นแรกเปิดไฟล์งานตัวบทสอนของครั้งที่แล้ว
ตามตัวอย่าง ผมได้ทำการรวมไฟล์สไปร์ให้อยู่ในกลุ่มเดียวกัน โดยการคลิ๊กขวาที่ Sprites เลือก Create Group
ทำการตั้งชื่อ ผมใช้ชื่อ boy แล้วกด OK จากนั้นก็ลากไฟล์สไปร์ไปใส่ใน กลุ่มไฟล์ที่เราตั้งขึ้นครับ
ขั้นตอนที่ 2
เราจะทำการสร้างสไปร์ขึ้นมาครับ ตั้งชื่อเป็น spr_wall แล้วทำการแก้ไขรูป คลิ๊กที่ EditSprite
ขั้นตอนที่ 3
ทำการสร้างงานขึ้นมาใหม่ กำหนดให้ความกว้างxยาว เท่ากับ 16x16 คลิ๊กที่รูปดินสอเข้าไปวาดรูป
ขั้นตอนที่ 4
จากตัวอย่างนะครับ ผมได้ทำการวาดบล็อกขึ้นมา เพื่อใช้ในการกำหนดสิ่งกีดขวางครับ
ขั้นตอนที่ 5
ทำการเพิ่มออปเจ็กต์ ตั้งชื่อเป็น obj_wall เลือก Sprite เป็น spr_wall
แล้วติ๊กเครื่องหมายถูกหน้า Solid
ขั้่นตอนที่ 6
เพิ่มโค้ดที่ obj_boy ต่อท้ายประโยคเงื่อนไขดังต่อไปนี้
if keyboard_check(vk_up)
&&place_free(x,y-5)
if keyboard_check(vk_down)
&&place_free(x,y+5)
if keyboard_check(vk_left)
&&place_free(x-5,y)
if keyboard_check(vk_right)
&&place_free(x+5,y)
ขั้นตอนที่ 7
ไปที่ห้องสร้างเกมส์ rm_main ที่แทป objecte ให้เราทำการวางออปเจ็กต์เป็นแนว
กรอบ เพื่อกันไม่ให้ตัวละครหลุดออกนอกแผนที่
ขั้นตอนที่ 8 สำคัญมาก ตั้งใจนะครับน้องๆ
ขั้นตอนนี้สำคัญมากเลยครับ คือการใช้เลเยอร์เพื่อแยกชั้นของการวางสิ่งของลงบนแผนที่
ซึ่งเราสามารถสร้างเลเยอร์กี่ชั้นก็ได้ ในตัวอย่างที่กำหนดมาให้ เริ่มจาก 1ล้าน จนไปถึง -1ล้าน
ครับดูไม่ผิดครับ ให้เลเยอร์มาเป็นล้านเลยในการใช้งาน กำหนดไว้ว่า ค่ายิ่งน้อยจะอยู่บนสุด
และค่ายิ่งมากจะอยู่ล่างสุดครับ ในตัวอย่างผมได้สร้างไว้ 2 ชั้นคือ ชั้นที่ 999999 กับชั้นที่ -1
จากนั้นจึงวางสิ่งของลงในแผนที่ตามต้องการ
ขั้นตอนที่ 9
กำหนดการเดินผ่านของต้นไม้ครับ ผมได้วางบล็อกไว้ที่ตัวต้นไม้ แล้วทำการทดสอบดูว่าสามารถ
วิ่งผ่านได้ไหม ตามตัวอย่างดังภาพที่เห็น
ขั้นตอนสุดท้่าย
ปรับให้บล็อกมองไม่เห็นเวลาเล่นเกมส์ ไปที่ออปเจ็กต์ obj_wall
นำเครื่องหมายถูกหน้า Visible ออกครับ แล้วทำการทดสอบเกมส์อีกครั้ง
ดังตัวอย่าง
และแล้วก็เสร็จตามความต้องการ
ตัวแปรน่าจดจำ
&&place_free(x,y) ใช้ในการเช็คค่าออปเจ็กต์ไปถึงสิ่งกีดขวาง
ดาวน์โหลดตัวอย่างบทสอน
ไฟล์ตัวอย่างบทสอนที่ 2
ขอบคุณทุกท่านที่เข้ามาชมครับ
บทความ : Gol-a-khung
ผิดพลาดประการใดรีบบอกกันเลยนะครับ จะได้ปรับแก้ให้ถูกต้อง