
Panthera Runtime - مكتبة Defold مصممة لدمج الرسوم المتحركة التي تم إنشاؤها مع محرر Panthera 2.0 ، وهو برنامج رسوم متحركة متعددة الاستخدامات ، في مشاريع Defold. تعمل مكتبة وقت التشغيل هذه على تبسيط عملية استيراد الرسوم المتحركة Panthera وتشغيلها ، مما يعزز الجودة المرئية والتفاعل بين ألعاب Defold والتطبيقات.
اقرأ دليل محرر Panthera 2.0 للتعرف على محرر Panthera 2.0 ، وهو أداة مبتكرة تم تطويرها باستخدام محرك Defold ، المصمم لتبسيط وتعزيز إنشاء الرسوم المتحركة لمشاريع Defold.
افتح ملف game.project الخاص بك وأضف الأسطر التالية إلى حقل التبعيات ضمن قسم المشروع:
ديفولد تينر
https://github.com/Insality/defold-tweener/archive/refs/tags/3.zip
بانثيرا وقت التشغيل
https://github.com/Insality/panthera/archive/refs/tags/runtime.4.zip
بعد ذلك ، حدد Project ▸ Fetch Libraries لتحديث تبعيات المكتبة. يحدث هذا تلقائيًا كلما فتحت مشروعًا ، لذا ستحتاج فقط إلى القيام بذلك إذا تغيرت التبعيات دون إعادة فتح المشروع.
ملاحظة: يتم حساب حجم المكتبة بناءً على تقرير الإنشاء لكل منصة
| منصة | حجم المكتبة |
|---|---|
| HTML5 | 12.42 كيلو بايت |
| سطح المكتب / الهاتف المحمول | 21.35 كيلو بايت |
ملاحظة: تم تصميم إعادة التحميل الساخن للاستخدام في بيئات التطوير فقط. يعمل إعادة التحميل الساخن فقط للرسوم المتحركة من ملفات JSON. إذا كنت تستخدم جدول LUA للرسوم المتحركة ، فلن يعمل إعادة التحميل الساخن.
يدعم Panthera Runtime إعادة تحميل الرسوم المتحركة الساخنة لسير عمل تنمية أكثر كفاءة. تتيح هذه الميزة إعادة تحميل الرسوم المتحركة تلقائيًا دون إعادة تشغيل لعبة Defold الخاصة بك ، مما يسهل التكرار السريع على أصول الرسوم المتحركة.
لتمكين إعادة تحميل الرسوم المتحركة الساخنة ، قم بتضمين الإعدادات التالية في ملف game.project :
[panthera]
hotreload_animations = 1تفاصيل التكوين:
1 لتمكين إعادة التحميل الساخن. هذه الميزة نشطة فقط في وضع التصحيح.تنفيذ إعادة التحميل الساخن في ديفولد:
للاستفادة من إعادة التحميل الساخن ، قم بإعداد مستمع حدث للنافذة في البرنامج النصي 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ينطبق هذا المثال على رسوم متحركة لتشغيل حلقات على كائن لعبة عند بدء تشغيل اللعبة.
تحميل وتشغيل ملف الرسوم المتحركة باستخدام محول واجهة المستخدم الرسومية.
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ينطبق هذا المثال على الرسوم المتحركة على عقدة واجهة المستخدم الرسومية عندما تبدأ اللعبة
تحقق مما إذا كانت الرسوم المتحركة تلعب حاليًا واسترداد معرف الرسوم المتحركة الحالي.
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 يوفر محولًا افتراضيًا لكائنات اللعبة و GUI ، فقد تحتاج إلى تخصيص محولك بناءً على احتياجات مشروعك. اقرأ تخصيص دليل المحول الخاص بك لمعرفة كيفية تعيين أنواع التخفيف ، والتعامل مع الأحداث المخصصة ، واستخدم محولك المخصص مع وقت تشغيل Panthera.
تم ترخيص وقت تشغيل Panthera بموجب ترخيص MIT - راجع ملف الترخيص للحصول على التفاصيل.
لأي مشكلات أو أسئلة أو اقتراحات ، يرجى إنشاء مشكلة.
اقرأ changelog للتعرف على آخر التحديثات والميزات في وقت تشغيل Panthera.
يحفزني دعمك على الاستمرار في إنشاء مشاريع وصيانتها لـ Defold . فكر في الدعم إذا وجدت مشاريعي مفيدة وقيمة.