سلام دوستان

در این آموزش نحوه پیاده سازی اسکرول صفحه بازی در کانستراکت 2 آموزش داده می شود.

در این آموزش،ما برای رسیدن به نتیجه مطلوب ،از رفتار “Scroll To” بر روی یک اسپرایت نامرئی استفاده خواهیم کرد.

 

گام اول:

پلاگین“Touch” را به پروژه خود اضافه کنید.

 

گام دوم:

یک اسپرایت نامرئی(invisible sprite) ایجاد و رفتارهای ScrollTo و“BoundToLayout” را برای آن در نظر بگیرید. در پنل خصوصیات رفتار“BoundToLayout” در قسمت by Bound گزینه bound by Edge را برگزینید.نام این اسپرایت را “TouchFollowMe”.  گذاشته و آنرا در تقریبا در مرکزپنجره بازی (view port) قرار دهید.

 

گام سوم:

متغیرهای instance  زیر را به اسپرایت خود اضافه نمایید.

 

 

گام چهارم:

کدهای زیر را به events sheet اضافه نمایید.

 

 

پروژه را اجرا و به سمتی درگ کنید تا صفحه حرکت کند.حالا سریعتر درگ کنید تا صفحه تندتر به حرکت درآید.و یک مرتبه روی صفحه  ضربه بزنید تا صفحه بایستد.

 

نحوه عملکرد:

هر زمانی که کاربر صفحه را لمس و شروع به درگ کند، ما فاصله مابین مختصات قبل و فعلی نقطه لمس شده را محاسبه می کنیم.سپس مسافتی که اسپرایت TouchFollowMe پیش از موقعیت فعلی  پشت سر گذاشته را تنظیم می کنیم.

فاصله بین دو مختصات لمس شده در هر لحطه ثابت محاسبه می شود،زیرا ما می خواهیم مسافتی که TouchFollowMe پیموده است را دائما اندازه گیری نماییم.در صورتیکه سریعتر درگ کنیم،مسافتی که انگشت در دو لحظه لمس نموده بیشتر شده و در نتیجه TouchFollowMe نیز سریعتر حرکت می کند.

بنابراین،وقتی کاربر سریع درگ می کند،مسافت بیشتری طی می شود. TouchFollowMe جلوتر رفته،و به تدریج به علت اکسپرشن lerp از سرعتش کاسته می شود.

به دلیل اینکه اسپرایت TouchFollowMe دارای رفتار “ScrollTo” می باشد، کانستراکت خودش مابقی کارها را انجام داده و دوربین همراه اسپرایت ما حرکت می کند.

 

مفاهیم:

  • سرعت:شما می توانید سرعت حرکت را با تغییردادن مقدار متغیر interpolation X در اکسپرشن ‘lerp’ کنترل نمایید.
  • جهت:شما با افزودن یا کم کردن مقدار ‘self.DiffX’ مربوط به ‘self.X’ (و self.DiffY مربوط به self.Y) ، می توانید جهت حرکت را با توجه به آنچه در بازیتان نیاز دارید تغییر دهید.
  • نرمی و استمرار:شما می توانید با کم و زیاد کردن مقدار بعد از تقسیم مربوط به self.DiffX و self.DiffY آنرا تغییر دهید.من پس از چنین مرتبه تست ،مقدار 50 را برای آن مناسب دیدم.

 

 

دانلود سورس این آموزش: