Limn Engine: เอกสารอ้างอิง API ฉบับสมบูรณ์
สร้างเกมได้รวดเร็วยิ่งขึ้นด้วย Limn Engine API คู่มือนี้จะครอบคลุมคลาสและเมธอดหลักที่คุณจำเป็นต้องใช้ในการเริ่มต้นพัฒนา
คลาสหลัก
• Display (L1): หัวใจหลักของเอนจิน ทำหน้าที่จัดการ canvas, game loop, input และ camera • Component (L1): วัตถุที่มองเห็นได้ทุกชิ้น ทำหน้าที่จัดการตำแหน่ง, ขนาด, ฟิสิกส์ และการชน • Camera (L2): ควบคุม viewport ใช้สำหรับติดตามผู้เล่น, ทำให้หน้าจอสั่น หรือซูม • Move (L1): ตัวช่วยสำหรับฟิสิกส์, อนุภาค (particles) และตรรกะการเคลื่อนที่ • State (L1): เครื่องมือแบบอ่านอย่างเดียว (read-only) สำหรับสอบถามคุณสมบัติของวัตถุ • TileMap (L2): ระบบสำหรับด่านและแผนที่แบบตาราง (grid-based) • Tctxt (L1): ข้อความแบบ Rich text ที่รองรับพื้นหลังและการจัดวาง • Sound (L1): จัดการไฟล์เสียงเดี่ยว • SoundManager (L4): จัดการเสียงหลายเสียงพร้อมกันและระดับเสียงรวม (global volume) • ParticleSystem (L3): สร้างเอฟเฟกต์การระเบิด, ควัน และเอฟเฟกต์ต่อเนื่อง • Sprite (L2): จัดการแอนิเมชันแบบ spritesheet
การนำไปใช้งานอย่างรวดเร็ว
เริ่มต้นการทำงานของเอนจิน: const display = new Display(); display.perform(); display.start(800, 600);
เพิ่มผู้เล่น: const player = new Component(40, 40, "blue", 100, 100); player.physics = true; player.gravity = 0.4; display.add(player);
การเคลื่อนที่และฟิสิกส์
ใช้ตัวช่วย move เพื่อทำให้โค้ดของคุณเรียบง่ายขึ้น:
- move.bound(player): รักษาวัตถุให้อยู่ภายใน canvas
- move.pointTo(id, x, y): หมุนวัตถุให้หันหน้าไปยังเป้าหมาย
- move.project(id, speed, angle, gravity): สร้างการเคลื่อนที่แบบโปรเจกไทล์
- move.accelerate(id, ax, ay): เพิ่มการเคลื่อนที่แบบนุ่มนวล
การควบคุมกล้อง
รักษาการมองเห็นเหตุการณ์ด้วยเมธอดเหล่านี้:
- display.camera.follow(target, true): ติดตามวัตถุอย่างนุ่มนวล
- display.camera.shake(x, y): เพิ่มการสั่นของหน้าจอเพื่อสร้างแรงปะทะ
- display.camera.setZoom(amount): เปลี่ยนระดับการซูม (view scale)
เอฟเฟกต์ภาพ
เพิ่มความสวยงามให้เกมของคุณด้วยอนุภาค (particles):
- move.particles.explosion(ps, x, y, count): สร้างการระเบิด
- move.particles.smoke(ps, x, y): สร้างกลุ่มควัน
- move.particles.magic(ps, x, y): สร้างเอฟเฟกต์การหมุนที่มีสีสัน
แหล่งที่มา: https://dev.to/kehinde_owolabi_e2e54567a/limn-engine-complete-api-reference-1acj