حل شده حرکت در جهت های مختلف به تعداد پیکسل دقیق
#1
سلام دوستان،
من میخوام یک اسپرایت رو در 4 جهت اصلی و باسرعت مشخص و در تعداد پیکسل مشخص حرکت بدم. مثلا  اسپرایت رو 200 پیکسل و باسرعت 1000 پیکسل برثانیه به سمت بالا حرکت بدم. اما در رفتارهای مختلف کانستراکت، رفتاری رو ندیدم که معیار حرکتش بر اساس فاصله پیکسلی باشه. خودم با استفاده از Custom movement از این شیوه استفاده کردم:
[تصویر:  sdsddds.JPG]
یعنی به جای اینکه بگم چه تعداد پیکسل حرکت کنه، با ایجاد وقفه زمانی میزان جابجایی رو کنترل کردم. اما با این شیوه بعد از چند بار حرکت دادن اسپرایت نظم حرکتیش بهم میریزه. یعنی گاهی بیشتر و گاهی کمتر از 200 پیکسل حرکت میکنه البته فقط چند پیکسل که اصلا آدم متوجه نمیشه، اما بعد از تعداد زیادی جابجایی قابل تشخیص میشه. حالا نمیدونم دقیقا به چه شیهوه ای میشه این نوع حرکت رو ایجاد کرد که دیگه معیار زمانی در اون دخیل نباشه.
  پاسخ


 سپاس شده توسط:
#2
سلام.
نمیدونم دقیق متوجه شدم یا نه اما یه سورس ساختم که با رفتار bullet میتونید حرکات رو پیاده کنید.
امیدوارم مفید باشه.
  پاسخ


 سپاس شده توسط: shazde ، kaveh_pzh
#3
(1398/4/5، 10:40 عصر)hsnpi نوشته است: سلام.
نمیدونم دقیق متوجه شدم یا نه اما یه سورس ساختم که با رفتار bullet میتونید حرکات رو پیاده کنید.
امیدوارم مفید باشه.

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


 سپاس شده توسط:
#4
داداش این کارا رو نمیخواهد
رفتار هشت جهت هست
توی تنظیماتش یک بخشی داره که ازت می خواهد که کاراکتر به چند جهت حرکت کنه تو بزن 4 جهت
بعدش هم Defalt control رو بردار و با ایونت شیت بگو که Sumilate Control بشه به این جهت

برای سرعتش هم توی تنظیماتش جایی رو داره به نام Max Speed که بر اساس پیکسل
برای اینکه بگی 1000 پیکسل با سرعت 200 پیکسل حرکتش بدی
یک اسپرایت در فاصله 1000 پیکسلیش درست کن و بگو حروقت به این رسید استوپ کنه
به همبن سادگی
بعد هم اون اسپرایترو invisible کن..
تمام!
[تصویر:  default-yellow.svg]
غایب
  پاسخ


 سپاس شده توسط: kaveh_pzh
#5
(1398/4/6، 09:17 صبح)kaveh_pzh نوشته است:
(1398/4/5، 10:40 عصر)hsnpi نوشته است: سلام.
نمیدونم دقیق متوجه شدم یا نه اما یه سورس ساختم که با رفتار bullet میتونید حرکات رو پیاده کنید.
امیدوارم مفید باشه.

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

سلام.
[تصویر:  Untitled.jpg]
فقط یادتون باشه تو تنظیمات اولیه اسپرایت bullet speed رو روی صفر بزارید که شروع به حرکت نکنه یدفعه.
اگر نسخه کانستراکتتون پایینه و تو باز کردن سورس ها مشکل دارید از این طریق میتونید مشکل رو حل کنید.

@oak 
دوست عزیز دو نکته وجود داره :
1) این که بخوایم برای هر کاری اسپرایت اضافه بسازیم و visible یا invisible اش کنیم هم غیرحرفه ای هست هم بهینه نیست و هم اگر پروژه بزرگتر شد باعث گیج شدن میشه. وقتی میشه با یه اسپرایت انجامش داد دیگه ساخت اسپرایت اضافه کار بیهوده ایه.
2) رفتار bullet یه مشخصه داره به اسم distance travel که بر اساس پیکسل کار میکنه و میاد مقدار پیکسلی که اسپرایت از وقتی شروع به حرکت کرده تا جایی که حرکت ادامه داره رو محاسبه میکنه و این دقیقا چیزیه که دوستمون میخواد.
  پاسخ


 سپاس شده توسط: kaveh_pzh ، shazde
#6
(1398/4/6، 09:53 صبح)oak نوشته است: داداش این کارا رو نمیخواهد
رفتار هشت جهت هست
توی تنظیماتش یک بخشی داره که ازت می خواهد که کاراکتر به چند جهت حرکت کنه تو بزن 4 جهت
بعدش هم Defalt control رو بردار و با ایونت شیت بگو که Sumilate Control بشه به این جهت

برای سرعتش هم توی تنظیماتش جایی رو داره به نام Max Speed که بر اساس پیکسل
برای اینکه بگی 1000 پیکسل با سرعت 200 پیکسل حرکتش بدی
یک اسپرایت در فاصله 1000 پیکسلیش درست کن و بگو حروقت به این رسید استوپ کنه
به همبن سادگی
بعد هم اون اسپرایترو invisible کن..
تمام!

مرسی ولی این کار چندتا مشکل داره: اول اینکه من میخوام حرکت ها دقیقا 200 پیکل باشه نه حتی یک پیکسل بیشتر یا کمتر، وقتی که این کاری که گفتید رو انجام بدم به محض تداخل اولین پیکسل از اسپرایت کاراکتر با اون اسپرایت های کنترلی که گفتید اکشن ها اجرا میشه و حرکت متوقف میشه. یعنی فاصله ای که طی میشه در حرکت های مختلف کمتر یا بیشتر از 200 خواهد بود.(چون اسپرایت کاراکتر انیمیشن داره و مدام داره تغیر اندازه میده) اما مسئله اصلی اینه که چون اسپزایت کاراکتر در محیط حرکت میکنه، این اسپرایت ها باید با فاصله مشخص در چهار طرف پین بشن و اگر این کار رو بکنیم وقتی اسپرایت رو حرکت بدیم اونها هم با اسپرایت کاراکتر حرکت میکنن و اصلا بهم برخورد نمیکنن!

(1398/4/6، 12:16 عصر)hsnpi نوشته است:
(1398/4/6، 09:17 صبح)kaveh_pzh نوشته است:
(1398/4/5، 10:40 عصر)hsnpi نوشته است: سلام.
نمیدونم دقیق متوجه شدم یا نه اما یه سورس ساختم که با رفتار bullet میتونید حرکات رو پیاده کنید.
امیدوارم مفید باشه.

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

سلام.
[تصویر:  Untitled.jpg]
فقط یادتون باشه تو تنظیمات اولیه اسپرایت bullet speed رو روی صفر بزارید که شروع به حرکت نکنه یدفعه.
اگر نسخه کانستراکتتون پایینه و تو باز کردن سورس ها مشکل دارید از این طریق میتونید مشکل رو حل کنید.

@oak 
دوست عزیز دو نکته وجود داره :
1) این که بخوایم برای هر کاری اسپرایت اضافه بسازیم و visible یا invisible اش کنیم هم غیرحرفه ای هست هم بهینه نیست و هم اگر پروژه بزرگتر شد باعث گیج شدن میشه. وقتی میشه با یه اسپرایت انجامش داد دیگه ساخت اسپرایت اضافه کار بیهوده ایه.
2) رفتار bullet یه مشخصه داره به اسم distance travel که بر اساس پیکسل کار میکنه و میاد مقدار پیکسلی که اسپرایت از وقتی شروع به حرکت کرده تا جایی که حرکت ادامه داره رو محاسبه میکنه و این دقیقا چیزیه که دوستمون میخواد.

خیلی خیلی ممنون دوست عزیز! دقیقا همین رو میخواستم.
  پاسخ


 سپاس شده توسط:


موضوع‌های مشابه…
موضوع نویسنده پاسخ بازدید آخرین ارسال
Information پرداخت درون برنامه مایکت کوردوا ya mahdi 0 230 1404/1/17، 05:43 عصر
آخرین ارسال: ya mahdi
  نحوه خروجی اندروید کوردوا ya mahdi 0 182 1404/1/11، 04:06 عصر
آخرین ارسال: ya mahdi
Wink حل شده مقادير لازم در environment variable ᔕinaᗪehghani 24 11,598 1403/10/23، 12:10 صبح
آخرین ارسال: Tggi
  تپسل .....فروشگاه Hamidreza 3 1,932 1403/10/22، 11:57 عصر
آخرین ارسال: Tggi
  خروجی اندروید با Intel xdk ya mahdi 0 130 1403/8/25، 02:08 عصر
آخرین ارسال: ya mahdi

پرش به انجمن: