1. ไม่มีแนวปฏิบัติที่ดีที่สุดทั่วไป
หากคุณมีจำนวนมาก (มีรูปทรงที่ซับซ้อน) องค์ประกอบอนุภาคอื่น ๆ ในเกมของคุณวิธีการบัฟเฟอร์บิตแมปเป็นไปได้มากขึ้นเร็วขึ้น บัฟเฟอร์บิตแมปจะขยายขนาดได้ดีขึ้นด้วยการเพิ่มความซับซ้อนของสไปรต์ของคุณ vector renderer จะช้าลงด้วยรูปร่างที่ซับซ้อนมากขึ้นหรือภาพเคลื่อนไหว tween (shape tween) แต่ก็มีข้อดีอื่น ๆ ดังนี้:
- คุณสามารถปรับขนาดสินทรัพย์ของคุณได้อย่างอิสระหรือแม้กระทั่งซูมเข้าไปในฉากโดยไม่สูญเสียคุณภาพ
- การหมุนหรือการแปลงอื่น ๆ เช่นการเอียงจะทำได้ง่ายขึ้นมากในกราฟิกแบบเวกเตอร์
ดังนั้นโดยสรุปมันจะทำให้เกมที่คุณกำลังสร้าง
2. ใช้ MovieClips แทน bitmap sprite-sheets
ฉันเดาว่าคุณหมายถึง "bitmap sprite-sheets" และไม่ใช่คลาสAS3 Sprite ?
มันไม่ได้สร้างความแตกต่างจริงๆ คุณสามารถเปลี่ยนภาพเคลื่อนไหวที่ใช้ MovieClip เป็นบิตแมปแบบเคลื่อนไหวได้ตลอดเวลา ไม่ว่าจะด้วยตนเองโดยการส่งออกภาพยนตร์ไปยังเฟรมและเปลี่ยนเป็นสไปรต์ชีทหรือแบบไดนามิกโดยการแสดงสไปรต์ชีทจาก MovieClip ของคุณเมื่อรันไทม์ นี่คือวิธีที่ฉันจะทำ:
- สร้างตัวอย่างของ MovieClip และ
stop()
มัน
- สร้าง
new BitmapData
วัตถุที่มีความกว้างและความสูงเท่ากับ Movieclip
- ใช้วิธีการdraw ()เพื่อแสดงผล MovieClip เป็น BitmapData
- เก็บวัตถุ BitmapData ใน Array หรือ Vector
- ไปที่เฟรมถัดไปของ MovieClip ของคุณและทำซ้ำขั้นตอนที่ 2 - 4 ทำเช่นนี้จนกว่าคุณจะถึงเฟรมสุดท้ายของ MovieClip ของคุณ นอกจากนี้คุณควรอัปเดตตัวแปรสองตัวด้วยความกว้างสูงสุดและความสูงสูงสุดของเฟรม MovieClip ของคุณ (เนื่องจากสิ่งเหล่านี้สามารถเปลี่ยนจากเฟรมหนึ่งเป็นเฟรม)
- ตอนนี้คุณสามารถรวมวัตถุ BitmapData ที่เก็บไว้ทั้งหมดลงใน Sprite-Sheet (ใช้BitmapData.copyPixels () )
3. ภาพเคลื่อนไหวที่ใช้เทพดา
ดังที่กล่าวไว้ในคำตอบสำหรับคำถามแรกของคุณไม่มีคำตอบที่ชัดเจนสำหรับคำถามนั้น หากคุณจำเป็นต้องทำการเปลี่ยนแปลงมากมายกับวัตถุของคุณเช่น ปรับขนาดและหมุนภาพคุณน่าจะดีกว่าโดยใช้ตัวแสดงผลเนทีฟแบบแฟลช หากคุณมีภาพเคลื่อนไหวที่กำหนดไว้ล่วงหน้าซึ่งสามารถอบไปที่สไปรต์แผ่น (ด้วยตนเองหรือแบบไดนามิก) และหากคุณต้องการแสดงสไปรต์นับร้อยในเวลาเดียวกันให้ไปที่เครื่องมือเรนเดอร์บิตแมป