آموزش ساخت بازی آنلاین-نوبتی(قسمت اول)


آموزش ساخت بازی آنلاین-نوبتی(قسمت اول)


خب بریم سراغ درخواست بعدی که تعداد لایک قابل قبولی دریافت کرده تو لیست

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

در این سری میخواهم یه بازی نوبتی (turn based) رو آموزش بدم

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

خب بریم پنج اسپرایت با نامهای spr_hero1 ، spr_hero2 ، spr_hero3 ، spr_hero4 ، spr_back به منظور انتخاب کاراکتر توسط کاربر ایجاد میکنیم.

یه اسپرایت کلید استارت به نام spr_play هم ایجاد میکنیم

یه آبجکت obj_global ایجاد میکنیم و در ایونت Create کدهای زیر رو وارد میکنیم.

randomize()
global.username=""
global.userhero=0
global.heath=100

global.e_username=0
global.e_userhero=0
global.e_heath=100


global.tern=0
  • خط اول برای اینه که حالت رندوم رو تو بازی فعال کنه
  • خط 2 و 3 و 4 متغییرهایی تعریف کردیم که مربوط به پلیر هستن
  • خط 6 و 7 و 8 متغییرهایی تعریف کردیم که مربوط به دشمن هستن
  • خط 11 یه متغییر هست که بعدا لازم داریم تا تشخیص بدیم پلیرمون نفر اوله یا نفر دوم و در حالت دفاع هست یا در حالت حمله.

در ایونت .Game start. همین آبجکت کدهای زیر رو وارد میکنیم.

global.username=get_string("name","")
if(global.username="")
{
global.username=string("user")+string(irandom(100))
}
  • خط اول برای اینه که از پلیر اسمشو دریافت میکنیم
  • خط 2 تا 5 برای مواردی هست که پلیر اسمی وارد نکرده و ما یه اسم براش در نظر میگیریم.

یک آبجکت با نام obj_hero1 ایجاد میکنیم

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

hero=1
image_speed=0
  • خط اول برای مشخص کردن شماره کاراکتر انتخابی هست بعدا سه آبجکت از این آبجکت کپی میکنیم و این متغییر رو افزایش میدیم .
  • خط دوم سرعت حرکت فریم اسپرایته که باعث ثابت شدن و عدم نمایش فریمهای بعدی میشه.

در ایونت .Mouse. زیر ایونت left pressed کدهای زیر رو قرار میدیم

global.userhero=hero
image_index=1
  • خط اول متغییر گلوبال کاراکترمون رو برابر متغییر کاراکتر این آبجکت میکنه.
  • خط دوم باعث نمایش فریم دوم اسپرایت میشه که حالت انتخاب هست.

در ایونت mouse enter کد زیر رو قرار میدیم

image_index=1

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

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

if(global.userhero=hero)
{
image_index=2
}
else
{
image_index=0
}

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

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

if(global.userhero=hero)
{
draw_sprite(spr_back,1,x,y)
draw_sprite(sprite_index,image_index,x,y)
draw_sprite(spr_back,3,x,y)
}
else
{
draw_sprite(spr_back,0,x,y)
draw_sprite(sprite_index,image_index,x,y)
draw_sprite(spr_back,2,x,y)
}
  • این کدها زمینه و نوار کناری به همراه اسپرایت کاراکتر رو برای آبجکت در دو حالت انتخاب وغیر انتخاب رسم میکنه.

سه آبجکت دیگه از روی همین آبجکت کپی میکنیم و فقط متغییر hero اون رو در ایونت کریت رو به ترتیب 2و3و4 قرار داده و اسپرایت مربوطه رو براش انتخاب میکنیم.

یه آبجکت به نام obj_play برای اینکه بعد انتخاب کاراکتر بریم روم بعد ایجاد میکنیم

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

image_speed=0

در ایونت Step کدهای زیر رو وارد میکنیم تا حالت انتخاب شدن یا نشدن کاراکتر مشخص بشه

if(global.userhero=0)
{
image_index=0
}
else
{
image_index=1
}

در ایونت left pressed این آبجکت کد زیر رو وارد میکنیم

if(global.userhero!=0)
{
room_goto_next()
}
  • این کد بررسی میکنه اگه کاراکتر خاصی انتخاب شده باشه میره روم بعد(با توجه به ایونت انتخابی با کلیک کردن)

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

 


Download

gmz

0.35 mb







ارسال نظر




رفتن به بالا