حل شده تغییر مقدار متغییر اینستانس یک کپی از یک اسپرایت
#1
سلام . من از یک اسپرایت چند کپی در لیوت 1 دارم و بهشون متغییر اینستانس دادم و میخوام از لیوت دو مقدار  متغییر هر کپی رو  جداگانه تعیین کنم. نمیخوام برای هر کپی متغییر گلوبال جداگنه تعریف کنم . (میدونید که متغییر ایستانس چطوری که ; اگر برای یک کپی متغییر اینستانس تعریف کنید برای بقیه ی کپی ها هم تعریف میشه اما مقدارش میتونه متفاوت باشه)
4 appreciate for your answer

 
  پاسخ


 سپاس شده توسط:
#2
سلام
اگه همون اول می خواید مقدارش را دستی تغییر بدید در قسمت پروپرتیس اسپرایت میشه اونا تغییر داد.و اگه با ایونت نویسی می خواید تغییر بدید باید اونا را پیک کنید.
  پاسخ


 سپاس شده توسط: mah ، vng
#3
نقل قول: سلام . من از یک اسپرایت چند کپی در لیوت 1 دارم و بهشون متغییر اینستانس دادم و میخوام از لیوت دو مقدار  متغییر هر کپی رو  جداگانه تعیین کنم. نمیخوام برای هر کپی متغییر گلوبال جداگنه تعریف کنم . (میدونید که متغییر ایستانس چطوری که ; اگر برای یک کپی متغییر اینستانس تعریف کنید برای بقیه ی کپی ها هم تعریف میشه اما مقدارش میتونه متفاوت باشه)
[تصویر:  4.gif] appreciate for your answer

 

نقل قول: سلام

اگه همون اول می خواید مقدارش را دستی تغییر بدید در قسمت پروپرتیس اسپرایت میشه اونا تغییر داد.و اگه با ایونت نویسی می خواید تغییر بدید باید اونا را پیک کنید.

ممنون از جوابتون  اما دو نکته هست :  67 

1- چرا متغییر (instance) هر کپی بعد از اینکه با pick کردن تغییرش دادم ثابت نمیمونه . یعنی وقتی میرم به یه لیوت دیگه و  دوباره برمیگردم به همون لیوت مقدار متغییر اون کپی به مقدار اولیش تغییر کرده! من میخوام تا وقتی تغییرش ندادم ثابت بمونه.

2-ایا اصلا میشه از یک لایوت به اسپرایت یک لایوت دیگه دسترسی داشت و متغییر (instance) اون اسپرایت رو تغییر داد؟


  پاسخ


 سپاس شده توسط:
#4
من خودم برای این کار یه روش پیدا کردم مثلا مقدار اولیت در متغیر 0 هست.
وب استورج رو به پروژه اضافه کن.بعد یه اونت بزار اون دکمه هست که می زنی میره به لایوت دیگه.اونت بزار که اگه روی دکمه(همونی که میره لایوت دیگه)کلیک شد مقدار متغیر سیو بشه.و یه اونت دیگه اگه مقدار متغیر 0 بود(یا هر عددی که متغیر از اول هست)اون وب استورپ که سیو شده بود رو لود کن.بعد وقتی وارد لایوت می شی میبینی ادامه ی اون موقع هست که رفتی بیرون.
دکمه سپاس فراموش نشود. 68
  پاسخ


 سپاس شده توسط: ghasem ، mah
#5
(1395/1/31، 10:42 صبح)mah نوشته است: ممنون از جوابتون  اما دو نکته هست :  67  

1- چرا متغییر (instance) هر کپی بعد از اینکه با pick کردن تغییرش دادم ثابت نمیمونه . یعنی وقتی میرم به یه لیوت دیگه و  دوباره برمیگردم به همون لیوت مقدار متغییر اون کپی به مقدار اولیش تغییر کرده! من میخوام تا وقتی تغییرش ندادم ثابت بمونه.

2-ایا اصلا میشه از یک لایوت به اسپرایت یک لایوت دیگه دسترسی داشت و متغییر (instance) اون اسپرایت رو تغییر داد؟

سلام

۱. وقتی به یک لیوت دیگه می‌روید اینستنس‌های داخل اون لیوت حذف می‌شوند، در نتیجه متغیّرهاشون هم نابود می‌شه. وقتی هم به اون لیوت برمی‌گردید اون اینستنس‌ها (و متغیّرهاشون) دوباره از اوّل ساخته می‌شن. برای رفع این مشکل می‌تونید از Save استفاده کنید. یعنی ابتدا بازی رو توی یک اسلات مثلاً هم‌نام لیوت ذخیره کنید، و بعد از ذخیره شدن برید توی لیوت دیگه، موقع برگشت به لیوت قبلی هم اون Save خودتون رو بارگذاری کنید تا همه‌ی اشیاء به همراه متغیّرهای اینستنس خودشون بازیابی بشوند.

۲. از اون جایی که وقتی تو یک لیوت دیگه هستید، اشیاء لیوت قبلی وجود ندارند پس متغیّرهاشون هم وجود ندارند.
معجزات طبیعت هایی هستند که با آن‌ها مأنوس نشده‌ایم
و طبیعت معجزه‌ایست که با آن انس گرفته‌ایم
علی صفایی حائری
  پاسخ


 سپاس شده توسط: mah ، vng
#6
(1395/2/2، 12:57 صبح)Mojtaba نوشته است:
(1395/1/31، 10:42 صبح)mah نوشته است: ممنون از جوابتون  اما دو نکته هست :  67  

1- چرا متغییر (instance) هر کپی بعد از اینکه با pick کردن تغییرش دادم ثابت نمیمونه . یعنی وقتی میرم به یه لیوت دیگه و  دوباره برمیگردم به همون لیوت مقدار متغییر اون کپی به مقدار اولیش تغییر کرده! من میخوام تا وقتی تغییرش ندادم ثابت بمونه.

2-ایا اصلا میشه از یک لایوت به اسپرایت یک لایوت دیگه دسترسی داشت و متغییر (instance) اون اسپرایت رو تغییر داد؟

سلام

۱. وقتی به یک لیوت دیگه می‌روید اینستنس‌های داخل اون لیوت حذف می‌شوند، در نتیجه متغیّرهاشون هم نابود می‌شه. وقتی هم به اون لیوت برمی‌گردید اون اینستنس‌ها (و متغیّرهاشون) دوباره از اوّل ساخته می‌شن. برای رفع این مشکل می‌تونید از Save استفاده کنید. یعنی ابتدا بازی رو توی یک اسلات مثلاً هم‌نام لیوت ذخیره کنید، و بعد از ذخیره شدن برید توی لیوت دیگه، موقع برگشت به لیوت قبلی هم اون Save خودتون رو بارگذاری کنید تا همه‌ی اشیاء به همراه متغیّرهای اینستنس خودشون بازیابی بشوند.

۲. از اون جایی که وقتی تو یک لیوت دیگه هستید، اشیاء لیوت قبلی وجود ندارند پس متغیّرهاشون هم وجود ندارند.
سلام

میخواستم  در مورد گرینه ی 1 بگم :

درسته وقتی از لایوت خارج بشی اسپرایت ها و تنظیماتش (مکانشون و متغییر هاشون ) حذف میشن اما نیاز نیست برای ذخیره کردن  این تنظیمات اسپرایت از save system  استفاده کنید(save  سیستم گاهی باعث یه سری پیچیدگی هایی میشه چون تمام اجزای نرم افزار رو سیو میکنه مانند متغییر های global که گاهی شاید نخوایم اونا سیو بشن )
بجاش متونیم از رفتار  ماندگاری (persist) برای اسپرایت استفاده کنیم . طرز استفادش تو این اموزش اومده: ماندگاری(persist)
4
  پاسخ


 سپاس شده توسط:
#7
فرض کنیم یک اسپرایت با متغیر اینستنس speed داریم. حالا یه کپی ازش تو همون لایوت میگیریم. حالا اگه مقدار speed یکی رو تغییر بدیم اون یکی هم تغییر میکنه. چه روشی پیشنهاد میکنین برای این مشکل؟
بازی استراتژیک لشکر امپراطور
نصب رایگان

[تصویر:  com.parsasoft.myempires0.jpg]
  پاسخ


 سپاس شده توسط:
#8
(1395/2/4، 03:52 عصر)kamran_cn نوشته است: فرض کنیم یک اسپرایت با متغیر اینستنس speed داریم. حالا یه کپی ازش تو همون لایوت میگیریم. حالا اگه مقدار speed یکی رو تغییر بدیم اون یکی هم تغییر میکنه. چه روشی پیشنهاد میکنین برای این مشکل؟

باید اول کپی اون اسپرایت رو pick کنی بعد مقدارش رو تغییر بدی تا تنها مقدار اون کپی تغییر کنه 4
  پاسخ


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


موضوع‌های مشابه…
موضوع نویسنده پاسخ بازدید آخرین ارسال
Information پرداخت درون برنامه مایکت کوردوا ya mahdi 0 230 1404/1/17، 05:43 عصر
آخرین ارسال: ya mahdi
  نحوه خروجی اندروید کوردوا ya mahdi 0 178 1404/1/11، 04:06 عصر
آخرین ارسال: ya mahdi
Wink حل شده مقادير لازم در environment variable ᔕinaᗪehghani 24 11,596 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

پرش به انجمن: