دستور with برای نسبت دادن دستوری در یک object به یک object دیگر است.

شما می توانید در گیم میکر متغیر یک object دیگر را به راحتی تغییر دهید. اما برای اینکه بخواهید تابعی یا دستوری را به یک آبجکت دیگر نسبت دهید، باید از دستور with استفاده کنید.

با این دستور می توانید کدی را مستقیما به یک object دیگر انتقال دهید. مثال:

در این مثال این دستور در obj_player نوشته می شود ولی در obj_Enemy اجرا می شود. مانند این است که من این دستور را در obj_Enrmy نوشته باشم.

if ready
{
with(obj_Enemy)
{
if var=true
{
speed=8;
}
}
}

در دستور with نام آبجکتی که کد باید برای آن اجرا شود در پرانتز، جلوی خود with نوشته می شود.

در مثال بالا شرط هنگامی که متغیر ready در obj_player برابر true شد، در obj_Enemy بررسی می شود که آیا var برابر true است؟ اگر هست سرعت خود obj_Enemy برابر 8 شود.

برای مثال اگر ما بخواهیم یک گلوله در هر بار که شلیک می شود، هم سرعت و هم زاویه تغییر کند ،می توانیم از همین دستور استفاده کنیم و برای هر گلوله ای که ساخته می شود دستوری جداگانه نسبت بدهیم.

این کد در obj_player قرار دارد و در رویداد step است.

sp+=1;
dir+=5;
with(instance_create(x, y, obj_Bullet))
{
speed+= obj_player.sp;
direction+= obj_player.dir;
}

در این مثال متغیر های sp و dir در هر قدم اضافه می شوند. سپس آبجکت obj_Bullet ساخته می شود و سرعت آن به علاوه sp و زاویه آن به علاوه dir می شود.

ما کد بالا را به صورت زیر هم می توانیم بنویسیم(این کد در obj_player قرار دارد) :

sp+=1;
dir+=5;
var obj;
obj= instance_create(x, y, obj_Bullet);
with (obj)
{
speed+= obj_player.sp;
direction+= obj_player.dir
}

این مثال هم مانند مثال قبلی استو با این تفاوت که ابتدا obj_Bullet ساخته می شود و درون متغیر obj قرار می گیرد و سپس دستورات برای متغیر obj صادر می شود. با اینکه در مثال قبلی دستورات به طور مستقیم صادر می شدند.