کانستراکت2 به شما اجازه می‌دهد بازی‌هایی حرفه‌ای بسازید.

۲۰ مطلب با موضوع «کانستراکت2 :: مرجع رفتار» ثبت شده است

رفتار 8 جهت (8Direction)

رفتار  8Direction :

این رفتار به شئ شما این امکان را میدهد تا شئ به سمت بالا , پایین , چپ , راست و قطر (منظور شمال شرقی یا غربی یاجنوب شرقی یا غربی...) حرکت کند.بطور پیشفرض با کلید های جهت کیبورد <^> حرکت می کند.

این رفتار بیشتر برای بازی هایی که دوربین از بالا به پایین است مناسب است همچنین می توان حرکت آن را در چهار جهت بالا و پایین , چپ و راست تنظیم کرد:



این رفتار با رفتار جامد (solid) سازگار است و واکنش نشان میدهد.


پنجره ویژگی ها :

این رفتار شامل 7 خواص است که باعث می شود شخصیت (شئ ای که رفتار 8 جهت را دارد):

  • Max speed : مشخص کردن حداکثر سرعت شخصیت بر حسب پیکسل بر ثانیه.
  • Acceleration : شتاب حرکت شخصیت را مشخص می کند که هر چقدر عدد کوچکتر باشد شتاب نیز بیشتر است که بر حسب پیکسل بر ثانیه بر ثانیه.
  • Deceleration : مشخص کردن کاهش سرعت زمانی که می خواهید مسیر حرکت را تغییر بدهید مثلا در حال حرکت به سمت راست هستید سپس تغییر جهت میدید و به سمت چپ حرکت می کنید که کمی طول می کشد تا شتاب شخصیت کم شود که بر حسب پیکسل بر ثانیه بر ثانیه.
  • Directions : نوع حرکت در محور ها را مشخص می کند که بطور پیشفرض 8 (8Directions) جهت است که می توانید آن را فقط چهار جهت ( 4directions) کنید یا فقط در در دو جهت بالا و پایین (Up & down) یا چپ و راست (Left & right) تغییر دهید.
  • Set angle : چرخش تصویر شئ را مشخص می کند که اگر No باشد موقع جابجایی در محور ها, تصویر شئ تغییر نمی کند و ثابت است اگر 90 درجه باشد موقع جابجایی فقط در چهار جهت اصلی تصویر به آن سمت 90درجه تغییر می کند اگر 45درجه باشد در هشت جهت نیر تصویر شئ 45 درجه تغییر می کند و در نهایت 360 درجه برای چرخش تصویر در همه زاویه ها است.
  • Default controls : اگر فعال (Yes) باشد شخصیت را ما کنترول می کنیم یعنی می توانیم با کلید های جهت <^> آن را به سمت راست یا چپ هدایت کنیم در غیر اینصورت ما نمی توانیم خود آن را کنترول کنیم (که در حالت غیرفعال (NO) بیشتر برای شخصیت های دیگر بازی بکار میرود مثل دشمنان).
  • Initial state : شما می توانید حالت پیشفرض برای این رفتار را روی شخصیت فعال (enabled) یا غیر فعال (disabled) کنید که اگر غیر فعال کنید می توانید آن را در زمان مشخص در رویداد نویسی فعال کنید.

شرط های این رفتار :

این رفتار شامل 12 رویداد یا اونت است که هر کدام که با Is شروع می شوند در طی بازی پیوسته در حال اجرا هستند ولی اگر با On شروع شوند فقط یکبار (triggers) در زمان مشخص شده اجرا می شوند که شامل:

  • Compare speed : برسی سرعت فعلی شخصیت مثلا اگر سرعت شخصیت ما برابر 500 شد تایمر بازی شروع شود.
  • Is moving : زمانی که شخصیت در حال حرکت بود یعنی سرعت آن غیر از 0 بود.

وظیفه های این رفتار :

این رفتار دارای 11 وظیفه (action) است که شامل:

  • Reverse : معکوس شدن مسیر حرکت مثلا وقتی شخصیت به راست میروید بعد از زدن کلیدی به راست حرکت کند.
  • Set acceleration : شتاب حرکت شخصیت را تنظیم می کند که در بالا توضیح دادیم.
  • Set deceleration : مشخص کردن کاهش سرعت زمانی که می خواهید مسیر حرکت را تغییر بدهید که در بالا توضیح دادیم.
  • Set max speed : مشخص کردن حداکثر سرعت شخصیت بر حسب پیکسل بر ثانیه.
  • Set enabled : می توانید حالت عمل کردن برای این رفتار را روی شخصیت فعال (enabled) یا غیر فعال (disabled) کنید.
  • Set ignoring input : می توانید کلید های ورودی را قطع و وصل کنید مثلا وقتی شخصیت در حال حرکت به راست است دیگر نتوان کلید های حرکت را بزند.
  • Set speed : تنظیم سرعت تیر بر حسب پیکسل بر ثانیه .
  • Set vector X : تنظیم کردن دستی برای حرکت شخصیت در محور افقی X .
  • Set vector Y : تنظیم کردن دستی برای حرکت شخصیت در محور عمودی Y.
  • Simulate control : کنترول کردن دستی شخصیت برای حرکت که برای شخصی سازی کلید های حرکت این امکان مفید است.
  • Stop : یک راه ساده برای تغییر سرعت حرکت به صفر.

دستورات این رفتار :

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

  • Acceleration
  • Deceleration
  • MaxSpeed

مثلا می خواهید سرعت دشمن برابر با سرعت شخصیت باشد: Player.platform.MaxSpeed

  • MovingAngle : دریافت زاویه قرار گیری شخصیت روی اشیاء دیگر بر حسب درجه.
  • Speed : سرعت فعلی شخصیت را نشان میدهد.
  • VectorX : سرعت و جهت فعلی حرکت شخصیت در محور افقی را نشان می دهد که اگر سمت چپ باشد مقدار سرعت منفی است که بر حسب پیکسل بر ثانیه.
  • VectorY : سرعت و جهت فعلی حرکت شخصیت در محور عمودی را نشان می دهد که اگر سمت بالا باشد مقدار سرعت منفی است.(در کامپیوتر بر خلاف ریاضیات از بالا یه پایین مقدار زیاد می شود) که بر حسب پیکسل بر ثانیه.

نویسنده : مهدی ابراهیمی

رفتار لنگر (Anchor)

رفتار Anchor :

رفتار لنگر یک رفتار مفیدی است که وقتی صفحه نمایش بازی تغییر می کند موقعیت مکانی شئ مورد نظر را حفظ می کند و نمی گذارد که موقعیت آن نسبت به تغییر صفحه نمایش تغییر کند و این برای صفحه نمایش های مختلف امکانی مناسب و خوب است.

توجه کنید که وقتی این رفتار را به یک شی میدهید آن شئ بطور خودکار به آن مکان می چسبد و موقع جابجایی دوربین جا نمی ماند مثل اینکه لایه ای پارالاکس (parallax) آن 0,0 باشد ولی با پارالاکس فرق دارد.

موقیعت قرار گیری اشیاء هنگام تغییر اندازه صفحه:

شما وقتی در محیط لایوت (Layout) هستید در سمت چپ بالای لایوت یک مستطیل شکل نقطه چین وجود دارد که اندازه صفحه نمایش بازی شما را نشان میدهد که شما باید اشیاء ای که می خواهید رفتار لنگر داشته باشند را باید داخل این مستطیل نقطه چین قرار دهید مثلا به تصویر زیر نگاه کنید:

حالا اگر اندازه صفحه نمایش را تغییر دهیم اشیاء مکان خودشان را حفظ می کنند و جا نمی مانند که در تصویر زیر مشاهده می کنید:

استفاده این رفتار بیشتر برای نمایش دادن یک پیام یا هشدار یا کمک یا ... که قرار است سر تا سر قسمت بالای (heads-up) بازی را بگیرد مناسب تر است.

پنجره ویژگی های این رفتار:

این رفتار 5 خواص دارد که در زیر توضیح دادیم:

خواص Left edge و Top edge که از لبه سمت چپ و بالا مکان یک شئ را بدون تغییر اندازه آن شئ حفظ می کنند استفاده می شود مثلا در تصویر بالا هر چقدر صفحه نمایش را بزرگ یا کوچکتر کنیم اندازه شئ تغییر نمی کنند و مکان خود را خفظ می کنند.

خواص Right edge و Bottom edge که از لبه سمت راست و پایین یک شئ را با تغییر انداره آن شئ حفظ می کتند استفاده می شود مثلا در تصویر بالا اگر صفحه نمایش را کوچکتر کنیم اندازه شئ نسبت به تغییر صفحه کوچکتر می شوند و برعکس.

Initial state : شما می توانید این رفتار را روی شئ مورد نظر فعال (enabled) یا غیر فعال (disabled) کنید که اگر غیر فعال کنید دیگر عمل نمی کند تا اینکه شما در رویداد نویسی (event sheet) زمان آن را مشخص کنید.

شرط , وظیفه و دستورات این رفتار:

این رفتار شرط (conditions) یا وظیفه (action) یا دستوراتی ندارد فقط یک وظیفه برای فعال یا غیر فعال کردن رفتار دارد:

  • Set enabled : شما می توانید این رفتار را روی شئ مورد نظر فعال (enabled) یا غیر فعال (disabled) کنید که اگر غیر فعال کنید دیگر عمل نمی کند.

نویسنده : مهدی ابراهیمی

رفتار زمان سنج (Timer)

رفتار Timer :

با دادن این رفتار به شئ می توانید آن شئ را در زمان های خاص کنترول کنید.این رفتار خیلی مناسب تر از این است که بخواهید خودتان یک زمان سنج را در رویداد نویسی ایجاد کنید مثلا بجای اینکه از رویداد های دستوری

Every X seconds  یا Wait و... استفاده کنید و رویداد های خود را پیچیده تر و سنگین تر کنید می توانید از تایمر استفاده کنید.

شما می توانید از این رفتار چند بار از زمانش استفاده کنید مثلا دشمن بعد از برخورد به شمشیر ما پس از 10ثانیه بعد نابود شود یا وقتی ماشین پشت چراغ قرمز ایستاده است پس از 23 ثانیه چراغ سبز شود و ماشین حرکت کند.

برچسب ها (Tags):

شاید لازم باشد که یک شئ چند زمان مختلف را داشته باشد مثلا وقتی پشت چراغ قرمز است 23 ثانیه منتظر بماند و وقتی پشت چراغ زرد ایستاده است 5 ثانیه منتظر بماند و.. آیا باید 2 بار این رفتار را به شئ ماشین اضافه کنیم؟؟؟

جواب خیر, ما با استفاده از تگ ها یا برچسب ها می توانیم آن ها را از هم جدا کنیم مثلا تگ چراغ قرمز "Red" است و تگ چراغ زرد "yellow" است و این تگ ها دلخواه هستند و هر چیزی می توانیم داخل آن ها بنویسیم.

شرط های این رفتار:

این رفتار فقط یک شرط یا اونت دارد که:

  • On timer : وقتی زمان در تگ مشخص شده به پایان رسید مثلا وقتی تایمر شئ ما تمام شد حالا شئ ما حذف شود.

وظیفه های این رفتار:

این رفتار شامل دو وظیفه (action) است که شامل:

  • Start timer : برای شروع تایمر یا زمان از این وظیفه یا اکشن استفاده می کنیم که شامل 3 پارامتر است که پارامتر اولی مدت زمان (Duration) را مشخص می کند که بر حسب ثانیه است و پارامتر دومی نوع تایمر (Type) را مشخص می کند که دو حالت یکبار (once) و منظم (Regular) دارد مثلا اگر یکبار باشد پس از پایان زمان دیگر عمل نمی کند ولی اگر منظم باشد به میزان زمانی که براش مشخص کردین اجرا می شود و سومی تگ (tag) آن را مشخص می کند که برای جداسازی چند زمان از تگ استفاده می کنیم.
  • Stop timer : می توانید تایمر یک تگ را متوقف کنید فقط کافی است تگ آن را مشخص کنید.

دستورات این رفتار:

  • "CurrentTime"tag: دریافت مقدار زمانی که گذشته در تگ مشخص شده که وقتی به آن زمان برسید دوباره از 0 شروع می کند.
  • "Duration"tag: دریافت مقدار مدت زمان در تگ مشخص شده.
  • "TotalTime"tag: دریافت کل مقدار زمانی که گذشته در تگ مشخص که اگر قرار باشد پشتر سر هم اجرا شود زمان کل را حساب می کند مثلا دوبار پشت چراغ قرمز که 23 ثانیه است را محاسبه می کند که 46 است و وقتی استوپ می شود به 0 تغییر می کند.

"sprite.timer.TotalTime"Red

نویسنده : مهدی ابراهیمی

رفتار تیر (Bullet)

رفتار Bullet :

این رفتار به شئ مورد نظر امکان تیر میدهد یعنی می تواند آن شئ را در زاویه دلخواه شلیک (حرکت کنید) کرد همچنین امکاناتی مثل تنظیم سرعت تیر و گرانش و شتاب را در دسترس شما قرار میدهد . این رفتار یک رفتار خوب و مناسب برای پیاده کردن تیر تفنگ است ولی در موارد مختلف دیگر مثل حرکت شئ نیز استفاده می شود:

شما می توانید در تصویر زیر یک نمونه از حرکت تیر را مشاهده کنید:

در تصویر بالا شئ ای که مثل تیر حرکت می کند رفتار Bullet را دارد.


پنجره ویژگی های Bullet :

این رفتار شامل 6 خواص است که:

  • Speed : سرعت اولیه تیر بر حسب پیکسل بر ثانیه که اگر منفی باشد به سمت چپ حرکت می کند و اگر منفی نباشد به سمت راست.
  • Acceleration : شتاب تیر بر حسب پیکسل بر ثانیه بر ثانیه را مشخص می کند که اگر 0 باشد سرعت تیر ثابت است ولی اگر مقداری مثبت باشد در طول زمان سرعت آن به همان اندازه افزایش میابد و اگر منفی باشد در طول زمان سرعت به همان مقدار از آن کاسته می شود.
  • Gravity :نیروی گرانش یا جادبه را برای تیر مشخص می کند اگر اگر مقداری مثبت باشد تیر به سمت پایین کشش پیدا می کند و اگر منفی باشد به سمت بالا کشش پیدا می کند و اگر مقدار 0 باشد در یک جهت بدون کشش حرکت می کند.
  • Bounce off solids : اگر فعال (Yes) باشد تیر با شئ یا جسم جامدی (Solid) برخورد دارد یعنی بازتاب می شود همچنین زاویه بازتاب آن نیز به چگونگی قرار گیری آن جسم یا شئ مربوط می شود.
  • Set angle : اگر غیر فعال (No) باشد تیر هرگز نمی تواند راویه خود را تغییر دهد ولی اگر فعال (Yes) باشد تیر می تواند نسب به حرکت خود زاویه داشته باشد یعنی اگر قرار باشد در تصویر بالا شخصیت ما حرکت کند و زاویه خود را تغییر دهد تیر نیز با آن سازگار می شود.
  • Initial state : شما می توانید این رفتار را روی شئ مورد نظر فعال (enabled) یا غیر فعال (disabled) کنید که اگر غیر فعال کنید دیگر تیر عمل نمی کند تا اینکه شما در رویداد نویسی (event sheet) زمان آن را مشخص کنید.

شرط های این رفتار Bullet:

این رفتار شامل دو شرط است که:

  • Compare speed : برای مقایسه یا برسی سرعت تیر استفاده می شود که بر حسب پیکسل بر ثانیه.
  • Compare distance travelled : مقایسه یا برسی فاصله اولیه تیر (x1) تا فاصله فعلی آن (x2) که برای برسی موقعیت فعلی تیر یا محل قرار گیری آن یا.. بکار میرود.

وظیفه های این رفتار Bullet :

این رفتار شامل 7 وظیفه (action) است که شامل:

  • Bounce off object : تغییر حرکت تیر از به سمت مخالف آن مثلا اگر تیر به سمت چپ حرکت می کند با زدن فلان دکمه به سمت راست حرکت می کند.
  • Set acceleration : تنظیم شتاب تیر بر حسب پیکسل بر ثانیه که در بالا توضیح دادیم.
  • Set angle of motion : تنظیم حرکت تیر در زاویه مشخص کرده.
  • Set distance travelled : مشخص کردن مکان اولیه حرکت تیر مثلا اگر تیر از نقطه 0 شروع به حرکت می کند می توانید نقطه شروع ابندایی (x1) آن را تغییر دهید.
  • Set enabled : شما می توانید این رفتار را روی شئ مورد نظر فعال (enabled) یا غیر فعال (disabled) کنید که اگر غیر فعال کنید دیگر تیر عمل نمی کند تا اینکه شما در رویداد نویسی (event sheet) زمان آن را مشخص کنید.
  • Set gravity : گرانش یا جاذبه تیر را نسبت به شتاب آن مشخص می کند که در بالا توضیح دادیم.
  • Set speed : تنظیم سرعت تیر بر حسب پیکسل بر ثانیه که در مورد منفی یا مثبت بودن آن در بالا توضیح دادیم.

دستورات این رفتار Bullet:

  • Acceleration : دریافت مقدار شتاب تیر مثلا sprite.Bullet.Acceleration
  • AngleOfMotion : دریافت مقدار زاویه تیر مثلا sprite.Bullet.AngleOfMotion
  • DistanceTravelled : دریافت مقدار جابجایی تیر در نقطه فعلی (x2) که در بالا توضیح دادیم.
  • Speed : دریافت مقدار فعلی سرعت حرکت تیر بر حسب پیکسل بر ثانیه.

sprite.Bullet.Speed

نویسنده : مهدی ابراهیمی

رفتار خط دید (Line-of-sight)

رفتار Line-of-sight :

این رفتار برای برسی دید یک جسم دیگر بکار میرود مثلا وقتی ما پشت یک دیوار هستیم نمی توانیم آن طرف دیوار را مشاهده کنیم ولی وقتی دیوار نباشد ما می تواینم اطراف (منظور اشیاء) را مشاهده کنیم.

بطور دقیق تر این رفتار خط لاین دید دو جسم را برسی می کند که در تصویر زیر آن را مشاهده می کنید:

در تصویر سمت راست دو شئ قرار دارند که هر کدام یک سمت دیوار قرار دارند و نمی توانند همدیگر را مشاهده کنند زیرا جلوی آن ها یک مانغ دیواری وجود دارد ولی در تصویر سمت چپ , شئ زرد می تواند شئ قرمز را مشاهده کند زیرا جلوی دید آن مانع وجود ندارد.

پنجره ویژگی های Line-of-sight :

این رفتار شامل 4 خواص است که:

  • Obstacles : این خواص موانع دید را مشخص می کند که شامل دو حالت جامد (Solid) و دستی (Custom) است مثلا در حالت جامد شئ دیوار ما باید رفتار جامد داشته باشد تا جلوی دید دو اشیاء را بگیرد مثل تصویر بالا و در حالت دستی ما می توانیم اشیاء را در رویداد نویسی مشخص کنیم تا آن ها حکم مانع را داشته باشند.
  • Range : محدوده یا فاصله دو شئ را بعد از دید مشخص می کند مثلا در تصویر چپ بالا فاصله آن ها بعد از دید بصورت دو خط قرمز است.
  • Cone of view : زاویه دید دو شئ را برسی می کند که در حالت عادی 360 است که همه طرف را برسی می کند مثلا اگر 180 باشد باید دو شئ در یک خط موازی قرار گیرند تا یکدیگر را مشاهده کنند.
  • Use collision cells : برای بهینه سازی خط دید هنگام تست استفاده می شود که معمولا سریع خط دید یکدیگر را پیدا می کنند ولی اگر فاصله دو شئ زیاد باشد ممکن است کمی کند شود که در مورد این در آینده توضیح خواهیم داد.

شرط های این رفتار (Line-of-sight conditions):

این رفتار شامل دو شرط است که:

  • Has LOS to object : برای مشخص کردن شئ مورد نظر استفاده می شود مثلا ما که این رفتار را داریم می خواهیم شئ دشمن را مشخص کنیم.
  • Has LOS to position : برای مشخص کردن مختصات محیط مرحله بکار میرود مثلا اگر ما در نقاط X,Y بودیم.

وظیفه های این رفتار (Line-of-sight actions):

این رفتار شامل چهار وظیفه (action) است که شامل:

  • Add obstacle : مشخص کردن شئ بصورت دستی که حکم موانع ما را داشته باشند.
  • Clear obstacles : پاک کردن شئ ای که خودمان بصورت دستی مشخص کردیم.
  • Set cone of view : مشخص کردن زاویه دید که در بالا توضیح دادیم.
  • Set range : مشخص کردن محدوده یا فاصله دید دو شئ که در بالا توضیح دادیم.

دستورات این رفتار (Line-of-sight expressions):

  • ConeOfView
  • Range

برای دریافت مقدار از دو گزینه بالا می توان در پنجره پارامتر ها استفاده کرد مثلا:

sprite.Line-of-sight.Range

نویسنده : مهدی ابراهیمی