การสร้าง Animation จาก Sprite sheet
#HelloGameDev #HelloErmine #HelloWorld2021
Last updated
Was this helpful?
#HelloGameDev #HelloErmine #HelloWorld2021
Last updated
Was this helpful?
จากที่น้อง ๆ ได้เรียนเรื่อง Sprite มาข้างต้นแล้ว เราจะมาเริ่มสร้าง animation กัน โดยวิธีการสร้าง animation นั้นมีหลายวิธีด้วยกัน ซึ่งน้อง ๆ สามารถหาดูเพิ่มเติมได้ที่ โดยวิธีที่พี่ ๆ จะสอนคือการทำ animation ด้วยการนำ Sprite sheet มาเล่นแต่ละเฟรมภาพไปเรื่อย ๆ จนเกิดเป็นภาพเคลื่อนไหวนั่นเอง
1. เริ่มจากขั้นตอนแรกคือ ให้ทำการ preload แบบ Sprite sheet แล้วกำหนด frameWidth, frameHeight
นกในตัวอย่างมี 8 เฟรม จะได้ความยาวรูปเท่ากับ 3280 และสามารถคำนวณ frameWidth ได้ว่า 3280 / 8 = 410 นั่นเอง
2. ต่อมา ภายใน Create function อันดับแรกให้น้อง ๆ ทำการ add Sprite ก่อน
3. ต่อมา ให้ใช้คำสั่ง this.anims.create
ภายใน Create function
กำหนด key ให้ไม่ซ้ำกับ key ตอน add Sprite เเละ key อื่น ๆ
โดยที่
duration คือ ความเร็วในการเล่นต่อรอบ ค่ายิ่งเยอะ animation ก็จะยิ่งช้า โดย 1000 = 1 วินาที (ในตัวอย่างคือ 500 = 0.5 วินาที จะได้ผลเป็น 0.5 วินาที ต่อ 1 รอบนั่นเอง)
frame ใช้กำหนดรูปที่จะใช้และเลือกว่าจะเริ่มเล่นรูปจาก frame ไหนก่อน (โดย frame แรกคือ frame0 นับจากซ้ายไปขวา)
repeat คือ จำนวนรอบที่ animation จะแสดง (ถ้ากำหนดเป็น -1 มันจะเป็นการวน loop ไปเรื่อย ๆ )
4. สุดท้ายให้ใช้คำสั่ง anims.play
ใน Update function เพื่อให้ animation ทำงานในเกมได้สมบูรณ์
ใช้ key เดียวกับตอนสร้าง anims
ผลลัพธ์ที่ได้
เท่านี้เราก็จะได้นกขยับปีกเเล้ว เห็นไหม...ไม่ยากเลยใช่ไหมครับน้อง ๆ