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

۶ مطلب با موضوع «آموزش کانستراکت :: آموزش متنی» ثبت شده است

چگونه سورس ورژن بالاتر را در کانستراکت ورژن کمتر باز کنیم؟

به نام خدا

در این آموزش قصد داریم که به شما یاد بدیم تا بتوانید سورس های ورژن بالاتر از ورژن کانستراکت خود را با یک ترفند جدید باز کنید. همانطور که میدانید سورس های کانستراکت دو نوع هستند که قبلا هم در اینجا به آن ها اشاره کرده بودیم ولی دوباره ذکر می کنیم دو نوع فایل با پسوند مختلف داریم:
  1. project.capx
  2. project.caproj


 

**کسانی که سورسشون به با پسوند caproj هست ، گام اول رو انجام ندهند.

گام اول:

ابتدا روی فایل capx خود کلیک راست کرده و موس را روی گزینه ی open with نگه داشته و در قسمت باز شده روی گزینه ی ...choose default program کلیک کنید:
 
 
سپس برنامه WinRar archiver را انتخاب کنید:(اگر آیکون winrar موجود نبود از قسمت إrowse ، برنامه winrar را از سیستم تان انتخاب کنید.)
 
 
حال پروژه شما بصورت یک پوشه هست که چند تا پوشه مختلف دارد به همراه یه فایل با پسوند project.caproj که حالا باید آن را استخراج کنید:
 
 
تمامی فایل ها را درون برنامه Extract To کنید بصورت زیر:
 
 
سپس در پنجره باز شده روی Ok کلیک کنید:
 
 
حالا مشاهده می کنید که فایل های شما استخراج شده اند:
 
 

گام دوم:

در این مرحله میخواهیم ورژن سورس کانستراکت را عوض کنیم. برای این کار ابتدا روی فایل caproj کلیک راست کرده و دوباره از قسمت open with فایلمان را این بار با برنامه notepad که همگی روی سیستم پیشفرض نصب داریم باز می کنیم که با همچین چیزی مواجه می شویم:
 
 
در notepad از کیبورد ctrl + f را میزنم و در قسمت تایپ <saved-with-version> را تایپ میکنیم تا متن اصلی پیدا شود (ctrl+f جستجو میکند).
عدد جلوی آن را باید متناسب با ورژن کانستراکت خود وارد کنیم.
برای این کار مثلا اگر نسخه کانستراکت شما 204 باشد ، باید بجای 21700 بزنید 20400 :
 
 
حال تمام پنجره ها را ببندید و روی فایل caproj خود کلیک راست کرده و از قسمت open with گزینه construct را انتخاب کنید.
۱ نظر
پرهام رضائی

حرکت دوربین به آهستگی و نرم-متنی

سلام دوستان

در این آموزش نحوه پیاده سازی اسکرول صفحه بازی در کانستراکت 2 آموزش داده می شود.

در این آموزش،ما برای رسیدن به نتیجه مطلوب ،از رفتار “Scroll To” بر روی یک اسپرایت نامرئی استفاده خواهیم کرد.

 

گام اول:

پلاگین“Touch” را به پروژه خود اضافه کنید.

 

گام دوم:

یک اسپرایت نامرئی(invisible sprite) ایجاد و رفتارهای ScrollTo و“BoundToLayout” را برای آن در نظر بگیرید. در پنل خصوصیات رفتار“BoundToLayout” در قسمت by Bound گزینه bound by Edge را برگزینید.نام این اسپرایت را “TouchFollowMe”.  گذاشته و آنرا در تقریبا در مرکزپنجره بازی (view port) قرار دهید.

 

گام سوم:

متغیرهای instance  زیر را به اسپرایت خود اضافه نمایید.

 

 

گام چهارم:

کدهای زیر را به events sheet اضافه نمایید.

 

 

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

 

نحوه عملکرد:

هر زمانی که کاربر صفحه را لمس و شروع به درگ کند، ما فاصله مابین مختصات قبل و فعلی نقطه لمس شده را محاسبه می کنیم.سپس مسافتی که اسپرایت TouchFollowMe پیش از موقعیت فعلی  پشت سر گذاشته را تنظیم می کنیم.

فاصله بین دو مختصات لمس شده در هر لحطه ثابت محاسبه می شود،زیرا ما می خواهیم مسافتی که TouchFollowMe پیموده است را دائما اندازه گیری نماییم.در صورتیکه سریعتر درگ کنیم،مسافتی که انگشت در دو لحظه لمس نموده بیشتر شده و در نتیجه TouchFollowMe نیز سریعتر حرکت می کند.

بنابراین،وقتی کاربر سریع درگ می کند،مسافت بیشتری طی می شود. TouchFollowMe جلوتر رفته،و به تدریج به علت اکسپرشن lerp از سرعتش کاسته می شود.

به دلیل اینکه اسپرایت TouchFollowMe دارای رفتار “ScrollTo” می باشد، کانستراکت خودش مابقی کارها را انجام داده و دوربین همراه اسپرایت ما حرکت می کند.

 

مفاهیم:

  • سرعت:شما می توانید سرعت حرکت را با تغییردادن مقدار متغیر interpolation X در اکسپرشن ‘lerp’ کنترل نمایید.
  • جهت:شما با افزودن یا کم کردن مقدار ‘self.DiffX’ مربوط به ‘self.X’ (و self.DiffY مربوط به self.Y) ، می توانید جهت حرکت را با توجه به آنچه در بازیتان نیاز دارید تغییر دهید.
  • نرمی و استمرار:شما می توانید با کم و زیاد کردن مقدار بعد از تقسیم مربوط به self.DiffX و self.DiffY آنرا تغییر دهید.من پس از چنین مرتبه تست ،مقدار 50 را برای آن مناسب دیدم.

 

 

دانلود سورس این آموزش:

۲ نظر
نویسنده: ابوالقاسم رحیمی

آموزش ساختن رادار ردیابی برای دشمن-متنی

احتمالا شما بازیهایی را دیده اید که در آن برای نشان دادن موقعیت دشمن و یا اشیای موجود در بازی از رادار استفاده شده است.این روش برای بازیهای استراتژیک بسیار کاربرد دارد.

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

 

لایه ها:

اول از همه،دو لایه با پارالاکس متفاوت ایجاد می کنیم.

نام لایه اول را "game" گذاشته و پارالاکس آنرا 100,100 و سپس نا م لایه دوم را "radar" و پارالاکس آنرا 0,0 در نظر بگیرید.

اکنون آبجکتهایی را که در لایه ها نیاز داریم را ایجاد می کنیم و یک پلیر و چند دشمن  به لایه "game" اضافه نمایید.

یک اسپرایت برای رادار ایجاد و آنرا در گوشه بالا و سمت چپ لیوت ، در لایه "radar" قرار دهید. برای نمایش دشمن در رادار نیز یک sprite کوچک ساخته و آنرا در لایه "radar" قرار داده و نام آنرا "radardots" بگذارید.

بسیار خوب اکنون به کدهای زیر نگاه کنید که این کدها برای نمایش دشمن در محل رادار می باشد:

 

 

ایجاد نقطه های رادار:

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

 

 

نمایش نقطه های رادار:

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

 

 

از بین بردن نقاط:

با این کاندیشن وقتی دشمن نابود شد نقطه نشان دهنده آن در رادار نیز از بین میرود:

 

 

نمایش نقطه ها فقط در رادار:

این کاندیشن برای این است که نقاط اگر در محل رادار قرار داشته باشند نمایش و در غیر این صورت محو شوند:

 

 

با موفقیت یک رادار را ساختید!

 

۴ نظر
نویسنده: ابوالقاسم رحیمی

آموزش کامل تست مستقیم بازی در گوشی با wifi - کامل

بسم الله الرحمن الرحیم

پیشنمایش:

در این آموزش یاد میگیریم که مستقیم پروژه خودمون را از کانستراکت2 در دستگاه اندرویدی یا ویندوزی یا ios خود تست کنیم بدون اینکه نیاز باشه از پروژه خودمون خروجی بگیریم.

مزایا:

اگر بازی برای دستگاه موبایل میسازید حتما این تست را انجام دهید چون:

  1. قطعا سرعت یا عملکرد (cpu) کامپیوتر 10 یا 11 برابر بیشتر از موبایل هست!
  2. اندازه نمایش بازی خودتون را می تونید در رزولوشن دستگاه خود تست کنید و آن را تنظیم کنید!
  3. تست سریع بازی بدون نیاز به خروجی!!

آموزش:

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

تنظیمات سیستم خود:

1:ابتدا کانستراکت2 را باز کنید و از نوار File گزینه Preferences را انتخاب کنید تا وارد تنظیمات کانستراکت2 شود:

 

 

2:سپس وارد تب Preview شوید و بجای localhost آدرس آیدی مودم خود را انتخاب کنید که معمولا آخرین گزینه در لیست باز شده است و مانند ارقام 192.168.2.4 شروع می شود:

 

3:سپس ok را بزنید و کانستراکت2 خود را ببندید و وارد کنترول پنل (control panel) کامپیوتر خود شوید و گزینه Windows Firewall را انتخاب کنید:

4:حالا در پنجره باز شده از سمت چپ گزینه Advanced seating را انتخاب کنید:

5: و همانند شکل عمل کنید:

6:بقیّه مراحل را بصورت پیشفرض next بزنید و در پایان یک اسم براش مشخص کنید.

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

تنظیمات دستگاه خود:

7:ابتدا یک برنامه شبکه کردن دستگاه خود با کامپیوتر را نسبت به سیستم عاملمان دانلود می کنیم که پیشنهاد ما برای اندروید برنامه WiFi File Explorer PRO و ویندوز فون برنامه Easy Transfer است.

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

8:سپس ابتدا دستگاه خود را به وایفای مودم خود متصل می کنیم سپس وارد برنامه WiFi File Explorer PRO می شویم و منتظر میمانیم تا یک پیغام مانند تصویر زیر دهد:

 

 

9:سپس Done را میزنیم و وارد مرورگر خود (ترجیعا کروم آخرین نسخه) می شویم و در نوار آدرس آیدی (آیدی که در قسمت 2 گفتیم) که در کانستراکت2 را انتخاب کردیم را تایپ می کنیم و به انتهای آن عبارت 50000: را اضافه می کنیم مثلا آیدی ما 192.168.2.4 بود حالا به این صورت می نویسیم 192.168.2.4:50000 :

 

 

10:کار ما تمام شد فقط حتما برای تست روی گوشی کانستراکت2 را Run admin strator کنید.

حالا اگر بازی خود را مثل قبل تست کنید بازی روی مرورگر گوشی شما اجرا می شود.

نکته: اگر خواستید مجدد بازی را تست کنید دیگر نیاز نیست دوباره همه این کار ها را انجام دهید یکبار انجام دهید کافی است و برای بار های بعد از شماره 8 به بعد کافی است.

دانلود فایل PDF :

۱۳ نظر
نویسنده : مهدی ابراهیمی

آموزش ذخیره سازی بازی و متغیر ها به همراه مثال-کامل

دوستان یکی از اصول اصلی و پایه ساختن هر بازی داشتن یک منبع برای ذخیره کردن اطلاعات درون بازی است که همانطور که شاهد هستید کمتر بازی پیدا می شود که از ذخیره کردن درون بازی استفاده نکرده باشد حالا امروز می خواهیم شما را با روش های ذخیره کردن بازی در کانستراکت2 آشنا کنیم.

  • استفاده از شئ سیستم (Save & Load)
  • استفاده از شئ وب استوریج (Web storage)
  • استفاده از شئ لوکال استوریج (Local storage)

فعلا در حال حاضر این سه روش برای ذخیره کردن بازی وجود دارد اما اینکه از کدام برای ذخیره سازی در بازی استفاده کنیم؟

  1. استفاده از ذخیره سازی شئ سیستم مزایا و معایبی دارد و در همه بازی ها نمی توان ازش به عنوان ذخیره بازی استفاده کرد که در ادامه به آن ها اشاره خواهیم کرد.

s

 

همانطور که مشاهده می کنید در اکشن های شئ سیستم چنین گزینه هایی وجود دارد که روش ذخیره کردن را برای شما را بسیار آسان کرده است. برای ذخیره سازی بازی از Save و برای بارگزاری از Load استفاده می کنیم.

 

Untitled-2

 

همانطور که می بینید در اونت 1, پس از کلیک شدن بر روی دکمه save, بازی ما را همان لحظه در شناسه دلخواه “save_car” ذخیره می کند (مانند متغیر ها و مکان های اسپریت و …) و حالا برای خواندن ذخیره ها از اکشن Load استفاده می کنیم که باید همان شناسه ای(“save_car”) که داده بودیم را برای این اکشن نیز بدیم حالا اگر بازی را تست کنید و دکمه save را بزنیم بازی ذخیره می شود و اگر دکمه Load را بزنیم بازی ما به آخرین ذخیره بارگزاری می شود.

آیا حتما باید از دکمه Save & Load برای بارگزاری و ذخیره استفاده کنیم؟

خیر, شما می توانید با هر اونتی که نیاز دارید بازی را ذخیره کنید مثلا بجای دکمه Load می توانید از اونت On start of layout استفاده کنید و بجای دکمه save نیز از اونت on end of layout استفاده کنید که در شروع لیوت خودکار آخرین ذخیره را بارگزاری کند و پس از خارج شدن از لیوت بازی را ذخیره کند:

 

es

 

یا اصلا می توانید از اونت های On collision استفاده کنید که در صورت برخورد اسپریت ها به هم بازی ذخیره شود و اینکه از کدام استفاده کنیم اختیار با شماست و می توانید از اونت های دیگری نیز استفاده کنید.

در بعضی از بازی ها بخصوص سبک استراتژیکی , کاربر اسم ذخیره بازی خود را می نویسد و دفعه بعد با همان اسم به همان ذخیره قبلی خود ادامه میدهد مثل بازی قلعه که شما می خواهید بازی را ذخیره کنید یک اسم براش انتخاب می کنید; اما برای اینکار باید از این روش استفاده کنید که موقعی که کاربر میخواد بازی را ذخیره کند یک تکس باکس باز می شود و کاربر اسم ذخیره را می نویسد و دوباره که خواست همان ذخیره قبلی را بارگزاری کند همان اسمی که برای ذخیره نوشته بود را وارد می کند و بازی به حالت قبلی لود می شود به مثال زیر نگاه کنید:

 

sd

 

اما در چه بازی هایی از این ذخیره سازی استفاده کنیم؟

این روش برای بازی های استراتژیکی و بازی های سبک کارتی یا بازی های پلتفرمی و یا بازی هایی که مرحله ها طولانی هست استفاده می شود اما برای بازی هایی مثل رکوردی و … که هر دفعه از دوباره لیوت آغاز می شود مناسب نیست و باید از روش های بعدی استفاده کنید. (پایان روش اول)

 

 

2:استفاده از شئ وب استوریج برای ذخیره دائمی و موقت متغیر ها که اگر از نسخه کانستراکت r204 استفاده می کنید در حالت عادی مخفی شده در صفحه شئ ها نیست ولی برای اینکه ظاهر بشه باید بر روی صفحه شئ ها راست کلیک کنید و تیک گزینه Show deprecated plugins را بزنید تا ظاهر شود:

 

12

 

قبل از شروع آموزش  شما را با اونت ها و اشکن های موجود در پلاگین آشنا می کنیم:

  • اونت های موجود در پلاگین وب استورچ:

we

دو نوع برای ذخیره کردن وجود دارد یکی دائمی (Local) و دیگری موقت (Session) که برای یه مدت محدود مقدار را ذخیره می کند اما گزینه های موجود:

  • Compare key value: یک اونت شرطی است که مقدار درون key شما را برسی می کند و اگر شرط برقرار باشد اکشن ها رخ میدهد و دو نوع هم داریم متغیر های عدد (as number) و متغیر های نوشتاری(as text).
  • local key exists: برای پیدا کردن key یا بهتره بگیم برسی وجود key که معمولا به اونت های شروع لیوت پیوست می خوره و برسی را انجام میده و وقتی گزینه را انتخاب می کنید مانند تصویر زیر یک key از شما می خواهد که باید برای هر متغیر که می خواهید در بازی ذخیره کنید یک key تعریف کنید.(key ها مثل اسمی برای ذخیره کردن مقدار متغیر هست که به صورت دلخواه می توانید وارد کنید ولی هر key یک اسم متفاوت).
  • Session Key exists:دقیقا مثل بالایی هست با این تفاوت که بالایی دائمی ذخیره می کند ولی این گزینه بصورت موقت ذخیره سازی می کند.(کاربرد بسیار کمی دارد).

به طور مثال : “key=”save_scores

اکشن های موجود در پلاگین وب استورچ:

wes_ac

  • Clear local storage: پاک کردن مقدار key های دائمی.
  • Remove local value:حذف یک مقدار key از مقدار های دائمی.
  • set local value:گرفتن مقدار متغیر و ذخیره کردن در key بصورت دائمی (همون نقش save را داره فقط اسمش فرق کرده و باید key و متغیری که قراره ذخیرش کنیم را بهش بدیم)

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

اما چطور ازش استفاده کنیم؟

این پلاگین بر خلاف اسمی که داره برای ذخیره کردن مقدار در سیستم بازی‌کن بکار میره مثلا شما می خواهید یک بازی رکوردی بسازید و هر دفعه که کاربر رکورد زد و یا امتیاز دریافت کرد مقدارش ذخیره بشه و بهتره بگیم روشی خوب برای ذخیره سازی متغیر ها.

روش ذخیره کردن به این صورت هست که باید برای هر یه متغیر یک key تعریف کنیم و در شروع بازی اگر چنین key هایی در بازی وجود داشت مقدار متغیر ما را به مقدار ذخیره شده در key برگردونه:

 

Untitled-2

 

همانطور که مشاهده می کنید یک متیغر به اسم “Score” داریم و می خواهیم مقدارش را ذخیره کنیم در اونت 1 در تصویر , گفتیم که در شروع بازی و یک شرط دیگه هم بهش اضافه کردیم که اگر “save_scores” وجود داشت مقدار متغیر ما به (save_scores) تغییر کنه تقریبا کارش مثل Load کردن هست منتها فقط برای یک مقدار و در نهایت در اونت 2 تصویر , گفتیم که اگر روی دکمه ای کلیک شد مقدار متغیر را ذخیره کنه.(set local key) که در اولی باید اسم key را وارد کنید و در دومی باید متغیر را انتخاب کنید. حالا اگر متغیر مقدارش که الان 0 است در بازی تغییر کند مثلا بشه 87 و دکمه را بزنیم مقدار ذخیره می شود و دوباره وارد بازی بشین مقدار همان 87 است.

حالا اگر 10 تا متغیر داشتیم چکار کنیم؟

مثلا اگر 10 تا متغیر داشته باشیم باید برای هر 10 تا هم جداگانه key بسازیم مثل تصویر زیر:

 

1

 

الان یکی متغیر Score است و دیگری متغیر Name است اما فقط مقدار متغیر ها را ذخیره نمی کنه بلکه حتی مقدار Text و  Textbox نیز می تواند ذخیره کند که در تصویر بالا می بینید و اینکه از چه اونتی برای ذخیره کردن و بارگزاری استفاده کنیم نیز مثل روش اول در دست شماست و کاربرد این نوع روش برای ذخیره حرفه ای بیشتر بازی ها بکار میره که فقط قصدشون ذخیره مقدار ها هست. (پایان روش دوم)

 

 

3: روش استفاده از شئ لوکال استوریج هست که همان نسخه بهبود یافته وب استوریج هست که دقیفا روش ذخیره سازیش برای مقدار بکار میرود و می توان گفت برادر دیگر وب استورچ ها هستند که در نسخه های جدید دیگر این روش ذخیره سازی جایگزین وب استورچ شده اند ولی با امکانات و مزایا بیشتر که در پایین به آن ها می پردازیم:

قبل از شروع آموزش شما را با اونت ها و اکشن های مهم موجود در پلاگین آشنا می کنیم:

Untitled-3

برخلاف وب استوریج که دو نوع روش ذخیره داشت لوکال استوریج فقط یک نوع دارد و همان دائمی است.

  • اونت های موجود در پلاگین وب استوریج:

  1. On item exists:این اونت برای چک کردن وجود آیتم است که از آن در ادامه توضیح خواهیم داد.
  2. On item get:این اونت برای دریافت مقدار آیتم بکار میرود که به زبان ساده تر نقش Load را ایفا می کند.
  3. On item set:برای ذخیره کردن مقدار آیتم استفاده می شود که نقش Save را نیز این انجام میدهد.
  4. On item removed: برای حذف کردن یک آیتم بکار میره.

ما با همین چند تا گزینه بیشتر سر و کار داریم بقیه هم خیلی ساده هستند و نیازی برای توضیح دادن اضافه نبود.

  • اکشن های موجود در پلاگین وب استورچ:

12

 

  1. Check item exist: این اکشن برای برسی وجود آیتم بکار میرود که بیشتر در شروع لیوت بکار میرود.
  2. Get item: تقریبا مثل گزینه local key exists وب استورچ هستند که فقط اسمش عوض شده و بجای key باید item را وارد کنیم.
  3. Remove item:برای حذف یک آیتم بکار میرود.
  4. Set item:همان نقش set local value وب استورچ را دارن فقط اسمش عوض شده و همان نقش Save را ایفا می کند.

بقیه نیز نیازی برای توضیح ندارد.

اما چطور ازش استفاده کنیم؟

دوستان این روش بسیار آسان هست فقط کمی اونت های بیشتری لازم دارد ما باید به این صورت عمل کنیم که در شروع لیوت On start of layout شئ لوکال استورچ ما یک آیتم را برسی کند Check item exist و در صورت وجود آیتم On item exists مقدار داخلش را دریافت می کند Get item و پس از دریافت آیتم On item get مقدار متغیر ما به Local storage.local value تغییر می کنه.

1:در شروع لیوت لوکال استورچ یه آیتم (اسم دلخواه برای ذخیره یک متغیر) را برسی می کنه.

 

1

 

2:حالا اگر آیتم برسی شد و چنین آیتمی وجود داشت خب حالا مقدار آیتم را دریافت می کنه.

 

2

 

3:حالا پس از اینکه مقدار آیتم را دریافت کرد خب وقتش رسیده مقدار متغیر ما نیز به مقدار درون آیتم تغییر کنه حالا تا اینجا عمل Load را انجام دادیم.

 

3

 

برای ذخیره کردن مقدار متغیر هم مثل زیر عمل می کنیم:

4:حالا اگر بر روی دکمه کلیک کنیم مقدار متغیر را به آیتم میفرسته و عمل save را انجام میده.

 

4

 

حالا از کدوم وب استورچ یا لوکال استورچ استفاده کنیم؟

(زحمت این قسمت ترجمه را آقا مجتبی کشیده و از ایشون تشکر می کنیم)

  • ذخیره‌سازی غیر همزمان: ذخیره‌سازی اطّلاعات در WebStorage به صورت همزمان بود، یعنی همان لحظه‌ای که اطّلاعات را ذخیره می‌کردید، ابتدا ذخیره‌سازی به طور کامل انجام می‌شد و بعد ادامه‌ی بازی انجام می‌شد، این مسئله برای ذخیره‌سازی مقادیر کوچک مشکل خاصّی ایجاد نمی‌کرد، ولی برای ذخیره‌سازی مقادیر خیلی بزرگ در هر بار ذخیره‌سازی چند لحظه هنگ می‌کرد. Local storage از ذخیره‌سازی غیر همزمان استفاده می‌کنه، یعنی موقع ذخیره‌سازی، بازی متوقّف نمی‌شه و ذخیره‌سازی به طور موازی با اجرای بازی انجام می‌شه و به همین دلیل عملکرد بازی رو خیلی بهتر می‌کنه. (Local storage برای ذخیره‌سازی از WebSQL و IndexedDB استفاده می‌کنه، اگه پلتفرم مورد نظر ما از این دو پشتیبانی نکنه، ذخیره‌سازی دوباره به صورت همزمان انجام می‌شه).
  •  
  • محدودیّت حجمی: در WebStorage محدودیت حجمی زیاد بود (حدّاکثر تا ۵ مگابایت می‌توانستیم ذخیره کنیم)، ولی چون Local storage از WebSQL و IndexedDB استفاده می‌کنه این محدودیت حجمی در بیشتر مواقع ۵۰ مگابایته و در بعضی جاها نامحدوده.
  •  نوع داده: Local storage نوع مقداری که در اون ذخیره می‌شه رو حفظ می‌کنه. WebStorage تمام مقادیر رو به عنوان رشته برمی‌گردوند، حتّی اگه ما در اون عدد ذخیره کرده بودیم، این موضوع موجب ایجاد باگ‌هایی در بازی می‌شد. Local storage عددها رو به عنوان عدد برمی‌گردونه و از بروز چنین مشکلاتی جلوگیری می‌کنه.
  • پشتیبانی Chrome web store: پشتیبانی از WebStorage در Chrome web store برداشته شد، و این یعنی اگه در بازی‌تون از این پلاگین استفاده کرده باشید و بخواین برای Chrome web store خروجی بگیرید نمی‌تونید اطّلاعاتی رو ذخیره کنید، ولی این مشکل با Local storage وجود نداره.
  • حذف Session storage: در WebStorage کلیدهای Session هیچ مزیّت خاصی نسبت به متغیّرهای گلوبال نداشتند، به همین دلیل در Local storage این کلیدها دیگر وجود ندارند.
  • اسم غلط انداز: اسم پلاگین WebStorage کمی غلط انداز بود، چون کاربران وقتی عبارت Web را در اسم این پلاگین می‌دیدند، فکر می‌کردند کار این پلاگین ذخیره‌ی اطّلاعات در وب است.

جنبه‌ی منفی Local storage این هست که کار با اون کمی مشکل‌تر شده. به خاطر این‌که ذخیره‌سازی اطّلاعات در Local storage غیر همزمان هست، نمی‌تونید خیلی راحت از یک اکسپرشن ساده برای دریافت مقدار استفاده کنید؛ ابتدا باید از اکشن get item استفاده کنید و لحظه‌ای بعد که مقدار مورد نظر دریافت شد از کاندیشن On item get استفاده کنید. به دلیل اینکه روش ذخیره‌سازی اطّلاعات در WebStorage با Local storage فرق می‌کنه، نمی‌تونید با استفاده از Local Storage به مقداری که قبلاً در WebStorage ذخیره کرده‌بودید دسترسی پیدا کنید حالا این شما هستید که از کدام روش استفاده کنید اختیار با شماست. (پایان آموزش سوم).

 

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