ایجاد گلوله و خشاب در گیم میکر


ایجاد گلوله و خشاب در گیم میکر


خب در این قسمت قصد داریم برای بازیمون تعدادی تیر و تعدادی خشاب تعریف کنیم

برای اینکار ابتدا یه اسپرایت با نام spr_recharge برای افکت تغییر خشاب ایجاد میکنیم

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

دو اسپرایت دیگه با نامهای spr_bullet برای تیر و spr_shovel برای خشاب ایجاد میکنیم

این دو اسپرایت برای مچ شدن با اسپرایت قبلی ادیت شدن

خب با توجه به اینکه در هنگام شلیک دوست دارم صدای شلیک پخش بشه یه sound با نام snd_shot ایجاد کرده و صدای شلیک رو براش انتخاب میکنیم.

دقت کنید استفاده زیاد از صدا و بک گراند حجم بازیتون رو بالا میبره.

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

پس دو خط زیر رو به ایونت کریت آبجکت پلیر اضافه میکنیم

bullet=13
shovel=3

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

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

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

با توجه به اینکه گلوله ما تو ایونت آلارم صفر ایجاد میشه میریم سراغ این ایونت

کدهای این ایونت رو با کدهای زیر جایگزین میکنیم.

instance_create(x+(image_xscale*50),y-30,obj_tir)
audio_play_sound(snd_shot,0,0)
bullet-=1
if(bullet>0)
{
shot=0
image_speed=0.02
sprite_index=spr_stop
}
else
{
sprite_index=spr_recharge
image_index=1
alarm[1]=22
}
  • خط اول: همون کد ایجاد تیر هست که در سورس قبلی داشتیم
  • خط دوم : صدای شلیک رو اجرا میکنه
  • خط سوم : یکی از تعداد گلوله هامون رو کم میکنه
  • خط چهارم : چک میکنه اگه تعداد گلوله بیشتر از صفر باشه کدهای مربوطه اجرا بشه
  • خط ششم : میزان متغییر شلیک رو برابر صفر میکنه تا پلیر دوباره بتونه شلیک و یا حرکت کنه
  • خط هفتم : سرعت اجرای فریمهای اسپرایت رو کم میکنه
  • خط هشتم : اسپرایت ایست رو به آبجکت اختصاص میده
  • خط دهم : این کد در صورتی که شرط خط چهار اشتباه باشه باعث اجرای کدهای پایین میشه یعنی اگه تعداد گلوله صفر بشه کدهای تغییر خشاب رو اجرا میکنه
  • خط یازدهم : اسپرایت تغییر خشاب رو به آبجکت ختصاص میده
  • خط دوازدهم : این خط کد جهت اطمینان از اجرای انیمیشن تغییر خشاب از فریم اول هست
  • خط سیزدهم : میزان آلارم یک رو برابر 22 قرار میده تا بعد 22 فریم بریم کدهای کم کردن خشاب و پر کردن گلوله رو اجرا کنیم.

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

if(shovel>0)
{
shovel-=1
bullet=13
}
shot=0
image_speed=0.02
sprite_index=spr_stop
  • خط اول : در این خط ما بررسی میکنیم اگه تعداد خشاب بیشتر از صفر باشه کدهی زیرش رو اجرا کنه
  • خط سوم : یک عدد از خشاب کم میکنه
  • خط چهارم : تعداد گلوله رو برابر 13 میکنه
  • خط ششم : میزان متغییر شلیک رو برابر صفر میکنه تا پلیر دوباره بتونه شلیک و یا حرکت کنه
  • خط هفتم : سرعت اجرای فریمهای اسپرایت رو کم میکنه
  • خط هشتم : اسپرایت ایست رو به آبجکت اختصاص میده

خب اگه دقت کرده باشین ما در ایونت گلوبال موس پرس باعث فعال شدن کدهای ایونت آلارم صفر که همون کدهای شلیک هستن میشدیم پس باید کدهای این ایونت رو هم مشروط کنیم که اگر تعداد گلوله صفر بود شلیک نکنه

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

if(shot=0 && bullet>0)
{
image_index=1
image_speed=0.2
sprite_index=spr_shot
alarm[0]=10
shot=1
}

در این کد تنها در خط اول شرط تعداد گلوله به شرط قبلی اضافه شده یعنی اگه تعداد گلوله بیشتر از صفر باشه کدهای مربوطه اجرا خواهند شد.

خب بریم یه آبجکت ایجاد کنیم تا تعداد گلوله و خشاب رو نمایش بده

یه آبجکت با نام obj_draw_bullet ایجاد کرده و یک ایونت draw براش ایجاد میکنیم (ایونت رسم)

خب در ایونت دراو این آبجکت کدهای زیر رو قرار میدیم

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)

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

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

دقت کنید کدهای .view_yview. و .view_xview. جهت وابسته کردن مکان رسم به ویو استفاده میشن با این کدها میشه مکان رسم رو ثابت نگه داشت و با حرکت پلیر اجسام رسم شده همیشه در مکان خاصی قرار خواهند گرفت.

خسته نباشید.

 

 

 


Download

gmz

1.66 mb







ارسال نظر




رفتن به بالا