درود مهمان گرامی! ثبت نام


آموزش ساخت بازی در #C آموزش UDK آموزش مدل سازی در Maya
آموزش ساخت بازی در VB آموزش Unity - پروژه محور آموزش مدل سازی با 3Ds Max
آموزش برنامه نویسی اندروید آموزش Unity - ساخت منو آموزش متحرک سازی در 3Ds Max
آموزش ساخت بازی حدس تصویر آموزش Unity - متحرک سازی مجموعه آموزش های ساخت بازی
● آموزش های رایگان ● تبلیغات دیجیتال هوشمند ● استخدام در فرادرس

امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
ذخیره متغیرها در گیم میکر
#1
سلام...من در گیم میکر چند تا متغیر تعریف کردم از نوع variable ... برای تعریف این متغیر ها در  ایونت کریت یک ابجکت که در صفحه اصلی بازی قرار دارد این کد رو نوشتم:
کد:
global.score = 0


بخاطر این کد متغیر تعریف می شه اما من یک مشکل دارم اون هم اینکه من برای سیو و لود این متغیر کاری نمی تونم بکنم چون بر اساس کد بالا موقع شروع بازی متغیر برابر صفر می شه...باید چیکار کنم که با شروع بازی مقدار متغیر برابر با آخرین تغییرش در بازی باشه؟ (کد بالا رو نمی تونم بردارم وگرنه موقع اجرا ارور می ده که متغیر تعریف نشده) 
پاسخ
#2
سلام
تعریف متغیر ها و مقدار دهی اولیه شون رو درست انجام دادید.
متغیر ها ماهیتا درون رم کامپیوتر شما تعریف میشن و قرار میگیرن و رم هم با بستن برنامه یا با خاموش شدن کامپیوتر اطلاعاتش پاک میشه. پس طبیعیه که شما متغیر ها و مقادیرشون رو در هر اجرای برنامه از دست بدید.
 برای اینکه متغیر های شما حفظ بشن و بتونید در طولانی مدت مقدارشون رو نگه دارید باید تلاش کنید مقدارشون رو یه جایی نگه داری کنید. محل نگهداری میتونه یه فایل txt کنار بازیتون باشه ، میتونه توی ریجیستری ویندوز باشه یا داخل سرور هاتون. 
بسته به پروژتون میتونید از یکی از این راهکار ها استفاده کنید.
پاسخ
#3
(7/4/1397، 06:25 عصر)aminblog76 نوشته است: سلام
تعریف متغیر ها و مقدار دهی اولیه شون رو درست انجام دادید.
متغیر ها ماهیتا درون رم کامپیوتر شما تعریف میشن و قرار میگیرن و رم هم با بستن برنامه یا با خاموش شدن کامپیوتر اطلاعاتش پاک میشه. پس طبیعیه که شما متغیر ها و مقادیرشون رو در هر اجرای برنامه از دست بدید.
 برای اینکه متغیر های شما حفظ بشن و بتونید در طولانی مدت مقدارشون رو نگه دارید باید تلاش کنید مقدارشون رو یه جایی نگه داری کنید. محل نگهداری میتونه یه فایل txt کنار بازیتون باشه ، میتونه توی ریجیستری ویندوز باشه یا داخل سرور هاتون. 
بسته به پروژتون میتونید از یکی از این راهکار ها استفاده کنید.

خیلی ممنون...
من برای اندروید بازی می سازم...باز هم می شه از این روش ها استفاده کرد؟
اگه می شه لطفا یه لینک اموزش کار با فایل txt رو برام بفرستید...ممنون می شم
پاسخ
#4
برای راحتی کار پیشنهاد میکنم از ds_map استفاده کنید و مستقیما ds_map رو ذخیره و لود کنید برای اطلاعات بیشتر هلپ گیم میکر رو مطالعه کنید
پاسخ
#5
(7/4/1397، 04:39 عصر)Hamid1225 نوشته است: سلام...من در گیم میکر چند تا متغیر تعریف کردم از نوع variable ... برای تعریف این متغیر ها در  ایونت کریت یک ابجکت که در صفحه اصلی بازی قرار دارد این کد رو نوشتم:
کد:
global.score = 0


بخاطر این کد متغیر تعریف می شه اما من یک مشکل دارم اون هم اینکه من برای سیو و لود این متغیر کاری نمی تونم بکنم چون بر اساس کد بالا موقع شروع بازی متغیر برابر صفر می شه...باید چیکار کنم که با شروع بازی مقدار متغیر برابر با آخرین تغییرش در بازی باشه؟ (کد بالا رو نمی تونم بردارم وگرنه موقع اجرا ارور می ده که متغیر تعریف نشده) 

سلام منم وقتی داشتم بازیمو میساختم دقیقا همین مشکل رو داشتم! خیلی روش فکر کردم هر کاری میکردی نمیشد از طریق متغیرای داخل بازی این کارو انجام بدی...
تا بلاخره یه راه حل پیدا کردم wink
باید از یه فایل ini استفاده کنی
به این صورت که توی کریت روم اول مینویسی که یه فایل ini باز کنه بعد اگر کلید(key) مربوط به سکه وجود نداشت یه key  با نوع real بسازه و مقدارش رو صفر کنه( هر عملی که میخوای فقط دفعه ی اول انجام شه رو هم باید تو این if بنویسی)

بعد متغیر سکت رو برابر با اون key میکنی و فایل رو میبندی
البته باید حواست باشه یا با هر تغییر مقدار سکه یا فقط موقع خروج از یه روم مقدار جدید سکه و تو فایل ini ذخیره کنی
پاسخ
#6
(10/4/1397، 05:53 عصر)imanbeik نوشته است:
(7/4/1397، 04:39 عصر)Hamid1225 نوشته است: سلام...من در گیم میکر چند تا متغیر تعریف کردم از نوع variable ... برای تعریف این متغیر ها در  ایونت کریت یک ابجکت که در صفحه اصلی بازی قرار دارد این کد رو نوشتم:
کد:
global.score = 0


بخاطر این کد متغیر تعریف می شه اما من یک مشکل دارم اون هم اینکه من برای سیو و لود این متغیر کاری نمی تونم بکنم چون بر اساس کد بالا موقع شروع بازی متغیر برابر صفر می شه...باید چیکار کنم که با شروع بازی مقدار متغیر برابر با آخرین تغییرش در بازی باشه؟ (کد بالا رو نمی تونم بردارم وگرنه موقع اجرا ارور می ده که متغیر تعریف نشده) 

سلام منم وقتی داشتم بازیمو میساختم دقیقا همین مشکل رو داشتم! خیلی روش فکر کردم هر کاری میکردی نمیشد از طریق متغیرای داخل بازی این کارو انجام بدی...
تا بلاخره یه راه حل پیدا کردم wink
باید از یه فایل ini استفاده کنی
به این صورت که توی کریت روم اول مینویسی که یه فایل ini باز کنه بعد اگر کلید(key) مربوط به سکه وجود نداشت یه key  با نوع real بسازه و مقدارش رو صفر کنه( هر عملی که میخوای فقط دفعه ی اول انجام شه رو هم باید تو این if بنویسی)

بعد متغیر سکت رو برابر با اون key میکنی و فایل رو میبندی
البته باید حواست باشه یا با هر تغییر مقدار سکه یا فقط موقع خروج از یه روم مقدار جدید سکه و تو فایل ini ذخیره کنی
خیلی ممنون از شما...من در موردini یه چیزای کلی ای می دونم...هرکاری کردم نتونستم متغیرvariable رو به این وسیله ذخیره و لود کنم...اگه می شه لطفا یه کد برای ذخیره global.score از طریق ini بفرستید...با کمی توضیح...واقعا ممنونتون می شم mwah
پاسخ
#7
کد:
//Save
ini_open("save.ini")
ini_write_real("score","score",global.score);
ini_close();

//Load
ini_open("save.ini")
global.score = ini_read_real("score","score",0);
ini_close();

به همین راحتی
پاسخ
 سپاس شده توسط qwerty13 ، Hamid1225
#8
(11/4/1397، 02:19 عصر)ArminaGames نوشته است:
کد:
//Save
ini_open("save.ini")
ini_write_real("score","score",global.score);
ini_close();

//Load
ini_open("save.ini")
global.score = ini_read_real("score","score",0);
ini_close();

به همین راحتی

سپاس گزارم happy

من این کد سیو رو در game end و کد لود روgame start گذاشتم با سیستم کامپیوتر سیو و لود می شه ولی با گوشی امتحان می کنم جواب نمی ده


ویرایش شده:
درست شد...سیو و لود می شه
پاسخ
#9
اشتباهی که شما انجام دادید در قسمت لود هست.مثلا شما میخواید در گوشه منو تعداد سکه هارو بنویسید و اولین بار هم هست که وارد بازی میشید پس باید سکه را با default لود کنید که برابر 0 هست.(یعنی اولین بار که بازی اجرا بشه سکه 0 باشه).این کد رو بنویس:
کد:
ini_open('data.ini')
global.coin = ini_read_real('section','key',0)
ini_close();
بعد مثلا میخوای بزنی 5 سکه ادد شه:
کد:
ini_open('data.ini')
ini_write_real('section','key',global.coin+5)
ini_close();

وبلاگ ما :

www.winhelp.blog.ir
پاسخ
#10
(12/4/1397، 10:26 صبح)Shine Studio نوشته است: اشتباهی که شما انجام دادید در قسمت لود هست.مثلا شما میخواید در گوشه منو تعداد سکه هارو بنویسید و اولین بار هم هست که وارد بازی میشید پس باید سکه را با default لود کنید که برابر 0 هست.(یعنی اولین بار که بازی اجرا بشه سکه 0 باشه).این کد رو بنویس:
کد:
ini_open('data.ini')
global.coin = ini_read_real('section','key',0)
ini_close();
بعد مثلا میخوای بزنی 5 سکه ادد شه:
کد:
ini_open('data.ini')
ini_write_real('section','key',global.coin+5)
ini_close();

وبلاگ ما :

www.winhelp.blog.ir
می شه بگید این کد ها رو باید در کجا وارد کنم؟
اگه دقت کرده باشید::
نقل قول:
کد:
("score","score",0)
پاسخ


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  ذخیره بازی Hamid1225 2 239 13/5/1396، 10:30 عصر
آخرین ارسال: Milad_Hyper
  تبدیل کد گیم میکر 8 به گیم میکر استدیو gamevar 3 409 4/5/1396، 01:07 عصر
آخرین ارسال: mamali me
Star ذخیره بازی در اندروید (ادامه) IntelBoy 1 252 25/4/1396، 12:08 صبح
آخرین ارسال: arian021
  تفاوت میان گیم میکر 8 با گیم میکر استادیو mehrsa 2 856 27/7/1394، 04:32 عصر
آخرین ارسال: mehrsa
  درخواست ذخیره عدد درون متغیر بدون محدودیت Xaniar 4 1,301 11/2/1394، 10:57 صبح
آخرین ارسال: Xaniar



کاربرانِ درحال بازدید از این موضوع: 1 مهمان