ایجاد زندگی در گیم میکر


ایجاد زندگی در گیم میکر


خب بریم سراخ ایجاد زندگی (جان) در گیم میکر

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

اسم این اسپرایت رو spr_live میذاریم

سپس یک اسپرایت برای نمایش حالت مرگ کاراکتر با نام spr_dead ایجاد کرده و دو اسپرایت دیگه یکی برای افزایش و دومی برای آبجکت کاهش تعداد زندگی با نامهای spr_food و spr_fire ایجاد میکنیم.

در آبجکت پلیر در ایونت .create. کد زیر رو اضافه میکنیم.

live=3

در کد بالا ما تعداد زندگی رو با توجه به اسپرایتمون که سه وضعیت داره برابر 3 قرار دادیم.

در نتیجه کدهای ایونت کریت آبجکت پلیر به صورت زیر میشه

image_speed=0.02
shot=0
bullet=13
shovel=3
live=3

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

if(live=0 && sprite_index!=spr_dead)
{
shot=1
sprite_index=spr_dead
image_index=1
alarm[2]=22
}
  • خط اول : ما شرط کردیم اگر تعداد زندگی برابر یک باشد و اگر اسپرایت پلیر اسپرایت مرگ نباشد (شرط اسپرایت جهت جلوگیری از اجرای مجدد کد هست و به عنوان یک کلید عمل میکند) کدهای زیر رو اجرا کنه.
  • خط سوم : مقدار متغییر شلیک رو برابر یک قرا میدیم تا کاراکتر نتونه حرکت کنه و یا شلیک کنه
  • خط چهارم : اسپرایت آبجکت رو به اسپرایت مرگ تغییر میدیم
  • خط پنجم : جهت اطمینان از اینکه انیمت اسپرایتمون از اول و به درستی اجرا میشه این کد رو میزنیم تا فریم اسپرایت رو برابر یک قرار بده
  • خط ششم : کد مربوطه باعث میشه ایونت آلارم 2 بعد 22 فریم اجرا بشه.

کد ایونت استیپ به صورت زیر میشه

if(shot=1)
{
speed=0
}

if(live=0 && sprite_index!=spr_dead)
{
shot=1
sprite_index=spr_dead
image_index=1
alarm[2]=22
}

یک ایونت آلارم برای آبجکتمون ایجاد میکنیم و در ایونت جدید (آلارم 2 ) کدهای زیر رو وارد میکنیم.

image_speed=0
  • خط اول : این کد سرعت اجرای فریم اسپرایت رو برابر صفر میکنه و اسپرایت ثابت میمونه و حرکت نمیکنه

برای تست کم شدن زندگی پلیر یه آبجکت با نام obj_fire ایجاد کرده و یه ایونت برخورد با آبجکت پلیر براش ایجاد میکنیم

در این ایونت کدهای زیر رو وارد میکنیم

obj_player.live-=1
instance_destroy()

با توجه به ایونت کلاکشن

  • خط اول : یک عدد از تعداد زندگی رو کم میکنه
  • خط دوم : آبجکت رو حذف میکنه

برای اضافه کردن تعداد زندگی یک آبجکت به نام obj_food ایجاد کرده و یک ایونت کالکشن با پلیر براش ایجاد میکنیم

در ایونت کالکشن این آبجکت کدهای زیر رو وارد میکنیم توجه کنید که ما نمیخواهیم پلیرمون بیشتر از 3 زندگی داشته باشه چون تعداد بیشتر از 3 زندگی با اسپرایتمون که سه بخشه همخوانی نداره پس کدها رو مشروط میکنیم

if(obj_player.live<3)
{
obj_player.live+=1
instance_destroy()
}
  • خط اول : شرط کردیم که اگر تعداد زندگی کمتر از 3 باشه کدهای زیر رو اجرا کنه
  • خط سوم : یک عدد به تعداد زندگی اضافه میکنه
  • خط چهارم : آبجکت رو حذف میکنه

خب تقریبا کار تمومه فقط مونده این زندگی ها رو رسم کنیم برای اینکار به ایونت draw ابجکت obj_draw_bullet میریم و کدهای زیر رو به کدهاش اضافه میکنیم

draw_sprite(spr_live,4,view_xview+15,view_yview+88)
draw_sprite(spr_live,obj_player.live,view_xview+15,view_yview+88)
  • خط اول : فریم چهارم اسپرایت زندگی رو که قرمز رنگه رسم میکنه تا زمینه مناسبی برای زمانی که تعداد زندگی کمتر از 3 هست ایجاد کنه
  • خط دوم : این خط با توجه به تعداد زندگی یکی از فریمهای اسپرایت زندگی رو رسم میکنه

کدهای بخش دراو آبجکت obj_draw_bullet پس از اضافه کردن این کدها به صورت زیر میشه

draw_sprite(spr_gun_health,0,view_xview,view_yview)
draw_sprite(spr_bullet,obj_player.bullet,view_xview+73,view_yview+59)
draw_sprite(spr_shovel,obj_player.shovel,view_xview+70,view_yview+87)

///live
draw_sprite(spr_live,4,view_xview+15,view_yview+88)
draw_sprite(spr_live,obj_player.live,view_xview+15,view_yview+88)

خب چندتا آبجکت obj_fire وobj_food در روم اضافه کرده بازی رو تست میکنیم

موفق باشید 


Download

gmz

1.47 mb







ارسال نظر




رفتن به بالا