آموزش کار با Path در game maker

این مطلب از سایت قدیمی منتقل شده و ممکن است اشکالات زیادی دشته باشد. لطفا در صورت مشاهده ی هر گونه ایراد، گزارش دهید

در این بخش از آموزش سایت ای تاتس روش کار با path در گیم میکر رو به شما آموزش میدیم. این آموزش می تونه کار شما رو در بازی سازی خیلی راحت تر کنه. با ما همراه باشید.

maxresdefault1

اتفاق افتاده است که شما بخواهید در بازیتان آبجکت از روی مسیر خاصی حرکت کند. شاید بشود این کار را با Timer ها انجام داد، اما در بیشتر مواقع کار شما پیچیده خواهد شد. برای این کار Path ها به کمک شما می آیند که به راحتی می توانید مسیری را ساخته تا آبجکت از روی آن حرکت کند.

 

path

برای ساخت یک مسیر می بایست گیم میکر شما در حالت Advanced Mode باشد. اگر نیست، از منوی File گزینه ی Advanced Mode را فعال نمایید.

مشاهده می کنید که گزینه های تازه ای به محیط گیم میکر اضافه می شود.

حال برای ایجاد یک مسیر می توانید از منوی Resources گزینه ی Create Path را انتخاب کنید یا دکمه های Ctrl+Shift+P را فشرده و یا از نوار ابزار گزینه ی Create_path را انتخاب کنید.

مسیر ایجاد شده پنجره ای را باز می کند که در آن می توانید مسیر خود را طراحی کنید.

در محیط شبکه ای شکل سمت راست، در مکان های مختلف کلیک کنید تا مسیری طراحی کنید.

در سمت چپ پنجره مشاهده می کنید که اعدادی اضافه شده است.

این اعداد مختصات نقاط این مسیر همراه با سرعت آن ها می باشد. توجه نمایید عدد 100 به این معناست که با سرعت اصلی که هنگام فراخوانی مسیر داده شده حرکت کن؛ اعداد کمتر از آن به معنای کم کردن سرعت می باشد و اعداد بیشتر به معنای سرعت بیشتر می باشد. سرعت حرکت بین دو نقطه با توجه به اعداد آن ها به طور پیوسته و نرم، کم یا زیاد می شود.

در پایین این اعداد شما می توانید به صورت دستی نقاط جدید اضافه کنید و یا نقاطی را از مسیر حذف کنید.

در قسمت connection Kind دو گزینه وجود دارد:

Straight lines به معنای خطوط مستقیم و شکسته می باشد.

Smooth curve به معنای منحنی صاف می باشد که مسیر ما را به صورت زیر در می آورد.

گزینه ی Closed تعیین می کند که نقطه ی انتهایی به نقطه ی ابتدای متصل باشد یا نباشد.

گزینه ی Precision برای میزان انحنای مسیر، هنگامی که Smooth curve انتخاب شده باشد استفاده می شود. هر چه این عدد بیشتر باشد منحنی نرم تر می باشد. مقدار آن محدود به اعداد 1 تا 8 می باشد.

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

Close the form, saving the changes: برای ذخیره و بستن پنجره مسیر است.

Undo the last changes in the path: تغییرات را یک قدم به عقب باز می گرداند.

Clear the path: تمام نقاط مسیر را پاک می کند.

Reverse the path: نقاط مسیر را برعکس می کند.

Shift the path: مسیر را به میزان دلخواه شیفت می دهد.

Mirror the path horizontally: مسیر را افقی برعکس می کند.

Flip the path vertically: مسیر را عمودی برعکس می کند.

Rotate the path: مسیر را با زاویه ی دلخواه می چرخاند.

Scale the path: مسیر را به میزان دلخواه کشیده یا جمع می کند. واحد آن درصد می باشد.

Shift the view to the left: برای حرکت نما (View) در پنجره ی مسیر به چپ می باشد. توجه کنید این گزینه تغییری در مکان نقاط مسیر به وجود نمی آورد.

Shift the view to the right: برای حرکت نما (View) در پنجره ی مسیر به راست می باشد. توجه کنید این گزینه تغییری در مکان نقاط مسیر به وجود نمی آورد.

Shift the view to the top: برای حرکت نما (View) در پنجره ی مسیر به بالا می باشد. توجه کنید این گزینه تغییری در مکان نقاط مسیر به وجود نمی آورد.

Shift the view to the bottom: برای حرکت نما (View) در پنجره ی مسیر به پایین می باشد. توجه کنید این گزینه تغییری در مکان نقاط مسیر به وجود نمی آورد.

Center the view around the path: مسیر را در وسط نما قرار می دهد. توجه کنید این گزینه تغییری در مکان نقاط مسیر به وجود نمی آورد.

Snap X و Snap Y: برای انتخاب اندازه ی Grid ها می باشد. توجه کنید هنگام اضافه کردن یا قرار دادن نقطه ها آن ها بر روی رئوس Grid ها قرار می گیرند.

برای تغییر مکان آن ها با دقت بیشتر کلید Alt را پایین نگه دارید.

Toggle the showing of the grid: برای انتخاب نمایش یا عدم نمایش Grid ها می باشد.

Indicate the room to show as background: این گزینه یکی از اتاق های بازی را به عنوان پس زمینه ی مسیر قرار می دهد. هنگامی که شما نیاز دارید که از این مسیر در قسمت خاصی از یک مرحله استفاده کنید، این گزینه باعث می شود مسیر را به دقت در مکانی که نیاز دارید قرار دهید تا مکان نقاط مطابق میل شما باشد.

اکشن های Path

سربرگ move:

Set Path: مسیری را به آبجکت مورد نظر نسبت می دهد. آبجکت با سرعتی که در speed تعیین می کنید شروع به حرکت می کند. گزینه ی at end مشخص می کند که پس از رسیدن به پایان مسیر چه عملی انجام شود. گزینه ی releative تعیین می کند که آبجکت از مکان جاری خودش مسیر را بپیماید یا از مختصاتی که نقطه ی اول مسیر دارد.

End Path: اگر آبجکت مورد نظر در حال پیمودن مسیری باشد آن را متوقف می کند.

Path Position: مکان آبجکت در مسیر را مشخص می کند. عدد 0 به معنای ابتدای مسیر و عدد 1 به معنای انتهای مسیر می باشد. برای مثال عدد 0.5 آبجکت را در نیمه راه مسیر قرار می دهد. فعال کردن گزینه ی Releative باعث می شود آبجکت به میزان ذکر شده در مسیر به جلو یا عقب برود.

Path Speed: سرعت مشخص شده در اکشن Set Path یا تابع path_start را تغییر می دهد.

رویدادهای Path

End of path: هنگامی که آبجکت به انتهای مسیر برسد این رویداد فراخوانی می شود.

توابع Path

شما می توانید از طریق GML نیز مسیری را ایجاد کنید یا تغییر دهید. تغییر یک مسیر بر روی حرکت آبجکتی که آن را دنبال می کند تاثیر می گذارد؛ اما ترجیحا این کار را نکنید؛ زیرا ممکن است منجر به نتایج غیر منتظره شود.

path_set_kind(ind,val)

نوع مسیر مورد نظر را تعیین می کند. عدد 0 به معنای خطوط شکسته و مستقیم و عدد 1 به معنای مسیر منحنی می باشد.

path_set_closed(ind,closed)

تعیین می کند که مسیر مورد نظر بسته باشد یا خیر. مقدار true برای پارامتر closed به معنای بسته بودن مسیر می باشد.

 

path_set_precision(ind,prec)

میزان دقت در انحنای مسیر را مشخص می کند. مقدار prec محدود به 1 تا 8 می باشد.

path_add()

مسیر جدیدی می سازد. مقدار بازگشتی آن در توابع دیگر استفاده می شود.

path_delete(ind)

مسیر مورد نظر را حذف می کند.

path_duplicate(ind)

یک کپی از مسیر مورد نظر می سازد و شناسه ی آن را باز می گرداند.

path_assign(destination,source)

مسیر source را بر روی مسیر destination کپی می کند. تمامی تنظیمات و نقاط مسیر source به مسیر destination انتقال می یابد.

path_append(destination, source)

تمامی نقاط مسیر source را به انتهای مسیر destination اضافه می کند.

path_add_point(ind,x,y,speed)

نقطه ی جدیدی به انتهای مسیر مورد نظر با مختصات x و y و تغییر سرعت speed (پیشفرض آن 100 می باشد) می افزاید.

path_insert_point(ind,n,x,y,speed)

نقطه ی جدیدی را به مکان مشخص شده در نقاط مسیر مورد نظر می افزاید.

path_change_point(ind,n,x,y,speed)

مشخصات نقطه در مکان n از مسیر مورد نظر را تغییر می دهد.

path_delete_point(ind,n)

نقطه در مکان n از مسیر مورد نظر را حذف می کند.

path_clear_points(ind)

تمامی نقاط مسیر مورد نظر را حذف می کند.

path_reverse(ind)

ترتیب نقاط مسیر مورد نظر را برعکس می کند.

path_mirror(ind)

مسیر مورد نظر را به صورت افقی برعکس می کند.

path_flip(ind)

مسیر مورد نظر را به صورت عمودی برعکس می کند.

path_rotate(ind,angle)

مسیر مورد نظر را با زاویه ی angle حول مرکز آن می چرخاند. (واحد زاویه درجه می باشد.)

path_scale(ind,xscale,yscale)

مسیر مورد نظر را با پارامتر های xscale (برای طول) و yscale (برای ارتفاع) می کشد. پیشفرض این دو پارامتر 1 می باشد.

path_shift(ind,xshift,yshift)

مسیر مورد نظر را به میزان xshift پیکسل در محور افقی و yshift پیکسل در محور عمودی شیفت می دهد.

draw_path(path,x,y,absolute)

با استفاده از این تابع در رویداد Draw شما می توانید مسیر مورد نظر را در بازی در مختصات x و y بکشید. اگر به جای پارامتر absolute مقدار true قرار گیرد، مختصات ذکر شده نادیده گرفته می شود و مسیر در مختصات واقعی خودش کشیده می شود.

path_exists(ind)

اگر مسیر مورد نظر وجود داشته باشد مقدار صحیح باز می گرداند.

path_get_name(ind)

نام مسیر مورد نظر را باز می گرداند. برای مثال path0

path_get_length(ind)

طول (مسافت) مسیر مورد نظر را به پیکسل باز می گرداند.

path_get_kind(ind)

نوع مسیر مورد نظر را باز می گرداند. اگر خطوط صاف و شکسته باشد مقدار 0 و اگر منحنی باشد مقدار 1 را باز می گرداند.

path_get_closed(ind)

اگر مسیر بسته باشد مقدار صحیح بازمی گرداند.

path_get_precision(ind)

میزان دقت مسیر را باز می گرداند.

path_get_number(ind)

تعداد نقاط تعریف شده در مسیر را باز می گرداند.

path_get_point_x(ind,n)

طول مکان نقطه ی n ام در مسیر مورد نظر را باز می گرداند.

path_get_point_y(ind,n)

ارتفاع مکان نقطه ی n ام در مسیر مورد نظر را باز می گرداند.

path_get_point_speed(ind,n)

تغییر سرعت نقطه ی n ام در مسیر مورد نظر را باز می گرداند.

path_get_x(ind,pos)

طول مکان pos از مسیر مورد نظر را باز می گرداند. pos می بایست عددی بین 0 تا 1 باشد.

path_get_y(ind,pos)

ارتفاع مکان pos از مسیر مورد نظر را باز می گرداند. pos می بایست عددی بین 0 تا 1 باشد.

path_get_speed(ind,pos)

تغییر سرعت مکان pos از مسیر مورد نظر را باز می گرداند. pos می بایست عددی بین 0 تا 1 باشد.

توابع Path مربوط به آبجکت

path_start(path,speed,endaction,absolute)

برای حرکت کردن آبجکت جاری در مسیر path با سرعت speed می باشد. سرعت منفی باعث حرکت کردن آبجکت به عقب در مسیر می شود. endaction تعیین می کند پس از رسیدن به انتهای مسیر چه عملی انجام شود. اعداد زیر می تواند در این پارامتر قرار بگیرد:

پس از رسیدن به انتهای مسیر بایست.

پس از رسیدن به انتهاب مسیر از ابتدای مسیر آغاز کن. توجه کنید اگر مسیر بسته نباشد، هنگام رفتن به ابتدای مسیر مختصات آبجکت به آن نقطه می پرد و نرم به سمت نقطه ی آغازین نخواهد رفت.

از مکان کنونی مسیر را دوباره آغاز کن.

مسیر را بازگرد. این گزینه سرعت پیمودن مسیر را منفی می کند.

پارامتر absolute اگر true باشد، آبجکت مسیر را از مختصات نقطه ی ابتدایی آن می پیماید (اگر سرعت منفی باشد از مختصات نقطه ی انتهایی به عقب حرکت می کند). اگر false باشد، آبجکت مسیر را از مکان کنونی خود می پیماید.

path_end()

آبجکت را از ادامه ی حرکت در مسیر باز می دارد.

متغیرهای Path

path_index

مسیری است که آبجکت در حال پیمودن آن است.

path_position

مکان آبجکت در مسیر است. مقدار آن بین 0 تا یک می باشد. 0 به معنای ابتدای مسیر و 1 به معنای انتهای مسیر می باشد.

path_positionprevious

مکان قبلی آبجکت در مسیر را در خود نگه می دارد. این گزینه هنگامی کاربرد دارد که آبجکت در پیمودن مسیر با آبجکتی برخورد کرده و نیاز است به مکان قبلی خود در مسیر برگردد. مقدار آن بین 0 تا 1 است.

path_speed

سرعت حرکت آبجکت در مسیر را در خود نگه می دارد. می توانید به آن مقدار منفی بدهید تا به عقب برگردد.

path_orientation

میزان گرایش آبجکت به مسیر را تعیین می کند. پیشفرض آن عدد 0 می باشد و به این معناست که دقیقا از روی منحنی مسیر حرکت کند، اما عدد بزرگتر از آن باعث می شود کمتر تمایل به تغییر مسیر داشته باشد و اندکی از مسیر منحرف شود. عدد منفی نیز باعث انحراف به داخل مسیر می شود.

path_scale

مقدار پیشفرض این متغیر عدد 1 است. عدد بزرگتر مسیر را کشیده تر می کند و عدد کوچکتر آن را جمع تر.

path_endaction

عملی که پس از رسیدن به انتهای مسیر باید انجام شود را در خود نگه می دارد.

آموزش کار با Path در game maker

کامنت ها

لطفا اگر سوالی نامرتبط با این مطلب دارید، از تب «پرسیدن سوال» استفاده کنید

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد.

لطفا اگر سوالی خارج از موضوع این مطلب دارید آن را در فروم مطرح کنید.

<