
Panthera Runtime - ไลบรารี defold ที่ออกแบบมาเพื่อรวมภาพเคลื่อนไหวที่สร้างขึ้นด้วย Panthera 2.0 Editor ซอฟต์แวร์แอนิเมชันอเนกประสงค์เข้ากับโครงการ Defold ห้องสมุดรันไทม์นี้ทำให้กระบวนการนำเข้าและเล่นอนิเมชั่นแพนเทอร์กลับช่วยเพิ่มคุณภาพการมองเห็นและการโต้ตอบของเกมและแอพพลิเคชั่น
อ่านคู่มือ บรรณาธิการ Panthera 2.0 เพื่อเรียนรู้เกี่ยวกับ Panthera 2.0 Editor ซึ่งเป็นเครื่องมือที่เป็นนวัตกรรมที่พัฒนาขึ้นโดยใช้เครื่องยนต์ Defold ที่ออกแบบมาเพื่อทำให้ง่ายขึ้นและปรับปรุงการสร้างภาพเคลื่อนไหวสำหรับโครงการ defold
เปิดไฟล์ game.project ของคุณและเพิ่มบรรทัดต่อไปนี้ในฟิลด์การพึ่งพาภายใต้ส่วนโครงการ:
defold tweener
https://github.com/Insality/defold-tweener/archive/refs/tags/3.zip
Panthera Runtime
https://github.com/Insality/panthera/archive/refs/tags/runtime.4.zip
หลังจากนั้นให้เลือก Project ▸ Fetch Libraries เพื่ออัปเดตการพึ่งพาไลบรารี สิ่งนี้จะเกิดขึ้นโดยอัตโนมัติเมื่อใดก็ตามที่คุณเปิดโครงการดังนั้นคุณจะต้องทำเช่นนี้หากการพึ่งพาเปลี่ยนแปลงโดยไม่ต้องเปิดโครงการอีกครั้ง
หมายเหตุ: ขนาดไลบรารีคำนวณตามรายงานการสร้างต่อแพลตฟอร์ม
| แพลตฟอร์ม | ขนาดห้องสมุด |
|---|---|
| HTML5 | 12.42 kb |
| เดสก์ท็อป / มือถือ | 21.35 kb |
หมายเหตุ: การโหลดซ้ำร้อนได้รับการออกแบบมาเพื่อใช้ในสภาพแวดล้อมการพัฒนาเท่านั้น การโหลดซ้ำแบบร้อนใช้งานได้เฉพาะกับภาพเคลื่อนไหวจากไฟล์ JSON หากคุณใช้ตาราง LUA สำหรับภาพเคลื่อนไหวการโหลดซ้ำที่ร้อนแรงจะไม่ทำงาน
Panthera Runtime รองรับการโหลดแอนิเมชั่นใหม่ ๆ สำหรับเวิร์กโฟลว์การพัฒนาที่มีประสิทธิภาพมากขึ้น คุณลักษณะนี้ช่วยให้ภาพเคลื่อนไหวสามารถโหลดซ้ำโดยอัตโนมัติโดยไม่ต้องรีสตาร์ทเกมที่ดีของคุณ
หากต้องการเปิดใช้งานการโหลดภาพเคลื่อนไหวใหม่ให้รวมการตั้งค่าต่อไปนี้ใน game.project ของคุณไฟล์โครงการ:
[panthera]
hotreload_animations = 1รายละเอียดการกำหนดค่า:
1 เพื่อเปิดใช้งานการโหลดซ้ำ คุณสมบัตินี้ใช้งานได้เฉพาะในโหมดดีบักการใช้งานการโหลดใหม่ใน DEFOLD:
หากต้องการใช้การโหลดซ้ำร้อนให้ตั้งค่าฟังเหตุการณ์หน้าต่างในสคริปต์ defold ของคุณที่กระตุ้น panthera.reload_animation() เมื่อหน้าต่างเกมได้รับโฟกัส สิ่งนี้ทำให้มั่นใจได้ว่าภาพเคลื่อนไหวจะได้รับการรีเฟรชโดยอัตโนมัติในระหว่างการพัฒนา:
local panthera = require ( " panthera.panthera " )
-- Reload animation when window is focused, only for debug and on desktop
window . set_listener ( function ( _ , event )
if event == window . WINDOW_EVENT_FOCUS_GAINED then
panthera . reload_animation ()
end
end ) panthera . create_gui ( animation_path_or_data , [ template ], [ nodes ])
panthera . create_go ( animation_path_or_data , [ collection_name ], [ objects ])
panthera . create ( animation_path_or_data , adapter , get_node )
panthera . clone_state ( animation_state )
panthera . play ( animation_state , animation_id , [ options ])
panthera . stop ( animation_state )
panthera . set_time ( animation_state , animation_id , time )
panthera . get_time ( animation_state )
panthera . get_duration ( animation_state , animation_id )
panthera . is_playing ( animation_state )
panthera . get_latest_animation_id ( animation_state )
panthera . set_logger ([ logger_instance ])
panthera . reload_animation ([ animation_path ])อ่านไฟล์อ้างอิง API เพื่อดูเอกสารประกอบ API เต็มรูปแบบสำหรับโมดูล
รวมแอนิเมชั่น Panthera เข้ากับ Defold กับตัวอย่างที่กระชับเหล่านี้:
โหลดและเล่นไฟล์ภาพเคลื่อนไหวโดยใช้อะแดปเตอร์ GO
local panthera = require ( " panthera.panthera " )
local animation = require ( " path.to.panthera_animation " )
function init ( self )
self . animation = panthera . create_go ( animation )
panthera . play ( self . animation , " run " , { is_loop = true })
endตัวอย่างนี้ใช้แอนิเมชั่นการวนรอบการวนซ้ำกับวัตถุเกมเมื่อเกมเริ่มต้น
โหลดและเล่นไฟล์ภาพเคลื่อนไหวโดยใช้อะแดปเตอร์ GUI
local panthera = require ( " panthera.panthera " )
local animation = require ( " path.to.panthera_animation " )
function init ( self )
self . animation = panthera . create_gui ( animation )
panthera . play ( self . animation , " fade_in " )
endตัวอย่างนี้ใช้แอนิเมชั่นจางหายไปกับโหนด GUI เมื่อเกมเริ่มต้น
ตรวจสอบว่าแอนิเมชั่นกำลังเล่นและดึงรหัสแอนิเมชั่นปัจจุบันหรือไม่
local panthera = require ( " panthera.panthera " )
function init ( self )
-- You can use JSON instead of Lua tables, but it should be accessible with sys.load_resource()
self . animation = panthera . create_gui ( " /animations/animation.json " )
local is_playing = panthera . is_playing ( self . animation )
local animation_id = panthera . get_latest_animation_id ( self . animation )
if is_playing then
print ( " The animation is currently playing: " , animation_id )
else
print ( " The animation is not playing " )
end
endเมื่อรวมแอนิเมชั่น Panthera 2.0 เข้ากับวัตถุเกม Defold (GOS) จำเป็นต้องรู้ว่าคุณสมบัติใดที่คุณสามารถเคลื่อนไหวได้:
โดยค่าเริ่มต้นส่วนประกอบ Sprite ใช้คุณสมบัติ tint และส่วนประกอบฉลากใช้คุณสมบัติ color Panthera พยายามใช้คุณสมบัติ color ในการเปิดใช้งานคุณสมบัติ color คุณควรตั้งค่าวัสดุของส่วนประกอบสไปรต์เป็น /panthera/materials/sprite.material หรือใช้วัสดุอื่น ๆ ที่มีแอตทริบิวต์ color
อ่านคู่มือการผสมแอนิเมชั่นเพื่อเรียนรู้วิธีการผสมผสานภาพเคลื่อนไหวหลายภาพพร้อมกันในเอนทิตีเดียวกันสร้างภาพเคลื่อนไหวที่ซับซ้อนเลเยอร์ที่ช่วยเพิ่มความจงรักภักดีและพลวัตของเกมของคุณ
ในขณะที่ Panthera Runtime มีอะแดปเตอร์เริ่มต้นสำหรับวัตถุเกมและ GUI คุณอาจต้องปรับแต่งอะแดปเตอร์ตามความต้องการของโครงการของคุณ อ่านคู่มือการปรับแต่งอะแดปเตอร์ของคุณเพื่อเรียนรู้วิธีการทำแผนที่ประเภทการผ่อนคลายจัดการกิจกรรมที่กำหนดเองและใช้อะแดปเตอร์ที่กำหนดเองของคุณด้วย Panthera Runtime
Panthera Runtime ได้รับใบอนุญาตภายใต้ใบอนุญาต MIT - ดูไฟล์ใบอนุญาตสำหรับรายละเอียด
สำหรับปัญหาคำถามหรือข้อเสนอแนะใด ๆ โปรดสร้างปัญหา
อ่าน Changelog เพื่อเรียนรู้เกี่ยวกับการอัปเดตและคุณสมบัติล่าสุดใน Panthera Runtime
การสนับสนุนของคุณกระตุ้นให้ฉันสร้างและบำรุงรักษาโครงการสำหรับ การพองตัว พิจารณาการสนับสนุนหากคุณพบว่าโครงการของฉันมีประโยชน์และมีค่า