Undo&Redo
#1
سلام  لطفا یه توضیح در مورد نحوه استفاده از Undo و Redo در کانستراکت بدید
  پاسخ


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


 سپاس شده توسط: ghasem ، keyhan
#3
سلام منظورم این بود که چطور برای بازی که ساختیم Undo&Redo بذاریم.مثلا برای حرکت پ
  پاسخ


 سپاس شده توسط:
#4
اگر دقیق تر بگویید برای چه بازی می توانم بیشتر راهنمایت کنم.
1-برای متغییر ها را می توان با هر تغییری در وب استور ذخیره کرد.و موقعی که می خواستی آنرا اندو کنی مقداری که در وب استور است را جای گزین مقدار متغییر کنی.
2-برای حرکت باید یک تابع عکس آنرا بنویسی. مثلا گلوله به جلو که مقدار سرعت مثبت است را با مقدار منفی جای گزین کنی
3-برای تعیین موقیعت. مثلا شی شما در موقیعت 20و24 بوده حالا به موقیعت 30و45 رفته .کافی است مقدار ایکس و ایرگ مختصات فعلی شی را در وب استور ذخیره کنی و هنگامی که شی تغییر مکان داد آن را دوباره وب استور ذخیره کنی با نام جدید.اگر دکمه اندو را زد مختصات قبلی که در وب استور وجود دارد را در مختصات شی جایگزین کنی.
در واقع در حالت کلی همه اکشن ه دارای یک مقدار است با ذخیره این مقدار در وب استور یا آرایه حالت آندو را ایجاد می کنی که با زدن دکمه آخرین تغییرات را از آرایه یا وب استور فرا خوانی میکنی و جایگزین مقدار فعلی . 
اگر  متوجه نشدی و یا مد نظرتان نبود .به طور شفاف و کامل موض خودتان را شرح دهید تا دقیق تر توضیح دهم.
  پاسخ


 سپاس شده توسط: ghasem ، keyhan
#5
سلام بوسیله وب استور فقط یک مرحله میشه آندو کرد برای چند مرحله مثلا 4 بار کلیک راست کیبورد را می زنیم و بازیکن 4 پیکسل به طرف راست میره . ما می خوایم با هر بار زدن کلید آندو که ساختیم بازیکن یک پیکسل به عقب برگرده  یه پلاگین هست ولی سورسایی که داخل سایت اسکیرا قرار داره فقط برا گرید مو و کانواسه روش معمولیش چطوریه 
 
  پاسخ


 سپاس شده توسط:
#6
اگر می خواهی چند موقیعت ذخیره شود نیاز به تابعی داری .در این تابع یک اشاره گر احتیاج داری که چندین حالت را به وب استور ذخیره و بر می گردانی.
راه ساده تر کافی است بازی هر لحظ مثلا اگر پلیر نغییر کرد یک ذخیره بکنید به کمک یک متغییر عددی به نام فایل یک واحد اضافه کن. با این کار  اندو چند گانه داشته باشید. من با دو حالت برایتان کد نوشتم. فقط جایی که می خواهی ذخیره شود را با دقت انتخاب کنید.
[تصویر:  1423579688_D3JU3MqNd8WHKMa.png]
 
  پاسخ


 سپاس شده توسط: ghasem ، keyhan
#7
سلام من طبق عکسی که گذاشتید عمل کردم ولی وقتی دکمه را فشار بدیم اسپرایت به بالا و سمت چپ لیوت می ره نه مکان قبلی اش . روش کار با پلاگین UndoRedo را اگه بلدید لطفا توضیح بدید
  پاسخ


 سپاس شده توسط:
#8
sبرای ذخیره موقعیت در چند مکان باید چند نکته توجه داشته باشد.
یک نام مثل x برای محور ایکس شی در وب استور انتخاب می کنی و بایک متغییر عددی ادغام می کنی مثلا اگر متغییر مقدرش صفر شد نام کلید می شود x0 همین کار رابرای y  و  متغییر های دیگر که می خواهی مقدارش آندو شو د را انجام می دهی.
حالا باید تغییرات را ذخیره کنی
حالتی را که می خواهی تغییرات ذخیره شود را در کاندیشن و رویداد انتخاب می کنید مثلا هنگامی که شی شما حرکت ومتوقف و مختصات فعلی با مختصات جدید متفاوت باشد. 
سپس در قسمت اکشن تمام متغیرهای که می خواهی با اندو به حات اولیه بر گردد را در این رویداد در وب استور ذخیره میکنی نحوه ذخیره مطابق فرمول روبه رو  
کد:
نام متغییر&"نام کلید در وباستور"
"x_player" & indexs
و در آخر به متغییر ایندکس یک واحد اضافه میکنی.
کاربرد ایندکس چیست. در واقع با اینکار شما کلیدهای مختلفی و با معنادار می سازی مثل  x1 x2 , .... یکجوری آرایه را پیاده سازی می کنی.هر کلید با ایندکس یک مختصات را ذخیره می کند. در واقع شما آندو با چند حالت برگشت می سازی.برای اینکه تعداد کلید ها زیاد نشود می توانی حداکثر کلید را تعریف کنی که مثلا تا 100 مورد را ذخیره کند.

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


 سپاس شده توسط: ghasem ، keyhan
#9
سلام میشه لطفا یه سورس ساده در این مورد بدید.
  پاسخ


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


موضوع‌های مشابه…
موضوع نویسنده پاسخ بازدید آخرین ارسال
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

پرش به انجمن: