افزودن انیمیشنهای بیشتر
بیایید باقی ماندهی انیمیشنهای پلت فرم را اضافه کنیم. ابتدا، بیایید تعدادی پلت فرم بیشتر برای پرش پلیر اضافه کنیم پس ما میتوانیم خیلی راحت ببینیم انیمیشنها چگونه کار میکنند.
به نمای لیوت برگردید تا بتوانید پلیر و تایلهای کف زمین را ببینید. کلیک و درگ کنید تا سه تایل را انتخاب کنید. سپس، کنترل را نگه دارید و تایلها را درگ کنید تا از رویشان کپی شود. چند بار این کار را انجام دهید تا چند پلت فرم وجود داشته باشد که پلیر بتواند روی آنها بپرد. ممکن است اگر به عقب زوم کنید برای این کار کمکتان کند.
برای اینکه نمایی بهتر داشته باشیم، بیایید اندازهی پنجره را نیز کمی بزرگتر کنیم. روی نام پروژه در بالای نوار پروژه کلیک کنید تا ویژگیهای پروژه نمایش داده شود. اندازهی پنجره را به 800×800 تغییر دهید.
حالا که ما جایی را برای پریدن داریم، با پنجرهای با اندازهی بزرگتر برای بیشتر دیدن، برویم سراغ اضافه کردن بقیهی انیمیشنهای پلیر.
یادتان باشد که ما از اکشن Set mirrored برای قرینه کردن خودکار پلیر به راست و چپ استفاده میکنیم. پس ما فقط نیاز داریم انیمیشنهایی را که رویشان به طرف راست باشد وارد کنیم.
**روی پلیر در نمای لیوت دابل کلیک کنید تا ویرایشگر تصویر باز شود. ما میخواهیم چهار انیمیشن را وارد کنیم:
1. بیکار به دویدن - Idle to run (tween(
2. دویدن (Run)
3. پرش در دویدن (Jump from run)
4. پرش در هنگام ندویدن (Jump from stand)
برای اضافه کردن هر کدام از این انیمیشنها به ترتیب زیر عمل کنید:
1. در نوار Animations کلیک راست کنید (به طور پیشفرض، در سمت راست شناور است و انیمیشن Idle در آن لیست شده است) و Add animation را انتخاب کنید.
2. نام انیمیشن را وارد کنید. ممکن است بخواهید نامهای سادهتری برای به خاطر سپردن انتخاب کنید مثل IdleToRun
3. روی انیمیشن کلیک کنید تا در پنجره به نمایش در آید. باید فقط یک فریم خالی ببینید.
4. در نوار Animation frames کلیک راست کنید (به طور پیشفرض، در پایین، فریمهای انیمیشن در آن لیست شده اند) و Import sprite strip... را انتخاب کنید.
5. جای اسپرایت استریپ را تعیین کنید. توجه داشته باشید که در پک موجود، هر فریم در یک فایل PNG جداگانه نیز در دسترس است. فریمها از این راه نیز میتوانند اضافه شوند، امّا معمولاً استفاده از اسپرایت استریپ سریعتر است، پس تصویری که استریپ کامل را دارد انتخاب کنید.
6. بررسی کنید که تعداد سلولها درست باشد، سپس روی OK کلیک کنید.
7. اوّلین فریم خالی را که ما دیگر به آن احتیاج نداریم حذف کنید.
8. در اوّلین فریم، مکان مبدأ را روی پاهای پلیر تعیین کنید. سعی کنید مکان آن با مکانش در انیمیشن Idle مطابق باشد. نقطهی مبدأ را به کل انیمیشن اعمال کنید همان طور که برای انیمیشن Idle این کار را کردید (روی Origin در پنجرهی Image Points کلیک راست کنید و Apply to whole animation را انتخاب کنید).
8. شیفت را نگه دارید و روی Crop کلیک کنید تا یکباره همهی فریمهای وارد شده بریده شوند، و مناطق غیر ضروری ترانسپارنت حذف شوند.
9. در نوار ویژگیها، مطمئن شوید هر انیمیشن ویژگیهای زیر را دارد:
سرعت (Speed): 22 برای JumpFromStand، 15 برای بقیه
تکرار (Loop): Yes برای Run، No برای بقیه
این کارها را برای هر انیمیشنی انجام دهید، پس بالاخره پنج انیمیشن برای پلیر وجود دارد.
ویرایشگر تصویر را ببندید. حالا باید بگوییم پلیر در زمان مناسب، به انیمیشن مناسب تغییر کند. برای این کار، رفتار پلت فرم تریگرهای انیمیشن را فراهم میکند - ایونتهایی که وقتی اجرا میشوند پلیر باید انیمیشنش تغییر کند. سپس ما فقط از اکشن Set animation برای پلیر استفاده میکنیم. یادتان باشد که رفتار پلت فرم (با تریگرهای انیمیشن) روی شیء PlayerBox است، و بعد ما میخواهیم انیمیشن شیء قابل رؤیت Player را تغییر دهیم.
همچنین توجّه داشته باشید که یک انیمیشن IdleToRun داریم. این یعنی وقتی شروع به حرکت میکنیم، انیمیشنها از الگوی مثل زیر پیروی میکنند:
موقع حرکت نکردن: Idle
شروع به حرکت: IdleToRun
وقتی IdleToRun تمام شد: Run
راه اندازی اینها نیز با ایونتها راحت است:
راه اندازی ایونتهای انیمیشن
تا حالا باید با مراحل ایجاد ایونت آشنا شده باشید.
1. شیء را انتخاب کنید.
2. شرط یا اکشن را انتخاب کنید.
3. اختیاری: اگر اکشن یا شرط دارای پارامتری بود آن را وارد کنید.
به نمای ایونت شیت برگردید. اوّل از همه، بیایید با استفاده از تریگر On moved که مال رفتار پلت فرم است در شیء PlayerBox تنظیم کنیم که موقع شروع حرکت، انیمیشن به IdleToRun تغییر کند:
بعد از اینکه انیمیشن IdleToRun تمام شد، ما بعد میخواهیم انیمیشن به Run تغییر کند. ما میتوانیم این کار را با استفاده از تریگر On animation finished در شیء Player انجام دهیم:
اگر پلیر بدود و بعد متوقف شود، ما نیاز داریم که انیمیشن را به Idle تغییر بدهیم. ما این کار را میتوانیم با تریگر انیمیشن On stopped در شیء PlayerBox انجام دهیم.
بازی را اجرا کنید. الآن پلیر باید بتواند با اجرای انیمیشن IdleToRun در این بین حالتش از دویدن به توقف تغییر کند. اما، انیمیشنهای پریدن هنوز اجرا نمیشوند. چون ما دو انیمیشن برای پرش داریم، نیاز داریم که هنگام پرش انیمیشن متفاوت را بر اساس این که آیا پلیر در حال دویدن است یا نه تنظیم کنیم. این کار با ایونت زیر قابل انجام شدن است:
ایونت اجرا شده است. این کار منطق بازی ما را به درستی انجام میدهد: وقتی رفتار پلت فرم میپرد، اگر حرکت کند، انیمیشن را به JumpToRun تنظیم کنید؛ وگرنه به JumpFromStand.
برای ساخت یک ساب-ایونت روی ایونت اصلی کلیک راست کنید و Add -> Add sub-event را انتخاب کنید، یا آن را انتخاب کنید و کلید S را فشار دهید.
برای وارونه عمل کردن یک شرط، به طور عادی آن را اضافه کنید، بعد روی آن کلیک راست کنید و Invert را انتخاب کنید. همچنین میتوانید آن را انتخاب کنید و کلید I را فشار دهید.
------------------------------------------
یکبار که همهی این تنظیمات را انجام دادید، بازی را اجرا کنید. تبریک - حالا یک کاراکتر پلیر به طور کامل متحرّک شده دارید! ببینید که اگر در حالت ایستادن بپرید ، یا در حالت دویدن بپرید چگونه انیمیشنهای مختلف پخش میشوند. همچنین ببینید که چگونه وقتی از روی زمین میپرید، براساس اینکه آیا حرکت میکنید یا نه به حالت بیکار یا دویدن میروید.
حالا، وقت آن است که یک دشمن بسازیم!