View Full Version :


Moh3en_DDD
10-20-2006, 06:26 PM
3d Game studio یک نرم افزار ساخت بازی جالب به صورت دو بعدی و سه بعدی است





اول از همه باید تنظیمات صفحه ی نمایش را درست کنیم برای این کار دستور زیر را می نویسیم :


var video_mode = 6 ;


این دستور رزولشن 640 * 480 می کند ... !

حال برای چه 6 ؟

می توانید از برای هر اندازه ای یک عدد بزنید که در لیست زیر اندازه ها نوشته شده است :


320x200 - 1
320x240 - 2
320x400 - 3 (not supported by some graphics adapters)
400x300 - 4 (not supported by some graphics adapters)
512x384 - 5
640x480 - 6 (default mode)
800x600 - 7
1024x768 E - 8
1280x960 P - 9
1400x1050 P - 10
1600x1200 P - 11


حال با استفاده از این دستور بیت های صفحه را به 16 تغییر بدهید ( به هر چیزی که می خواهید تغییر بدهید ولی بهتر است همون 16 باشد  البته غیر از 16 فقط 32 می توانید بگذارید ) !


var video_depth = 16 ;


لیست بیت هایی که می توانید بگذارید همراه با توضیح  :


16 - 16 Bit Farbetiefe (65536 Farben)
32 - 32 Bit Farbtiefe P /16,7 Millionen Farben


یک تابع هست که می گوید وقتی صفحه ی بازی باز می شود چه اطفاقی بیفتد ... مثلا می شه گفت که مرحله ای که در Level Editor ساخته ایم رل بیا ورد برای این کار مثلا اسم مرحله ای که درست کردید Level 1 هست که ما برای اینکه این مرحله در اول بازی بیاید دستور زیر را بدهید :


function main () {
level_load('level1.wmb');
}


دقت داشته باشید :


level1.wmb نه level.wmp


این را گفتم که شاید خیلی ها دقت نکنند !

روش تعریف متغییر :


var Name = Integer ;
یا
var name ;


به جای :
name :
نام متغییر
Integer :
مقدار متغییر

روش تعریف function یا همان تابع :


function Name () {
دستورات
}


name :
نام تابع

روش تعریف اکشن :


action Name {
دستورات
}


name :

نام اکشن

متغیر چیست ؟

متغیر یا می تونه یک عدد یا یک رشته باشه که در طول برنامه مرتب عدد آن تغییر می کند ... یعنی ما می توانیم به آن عدد دهیم و عدد داخل آن را تغییر دهیم ... ( در طول آموزش بشتر متوجه می شودید ) !

اکشن چیست ؟

اکشن یعنی برنامه نویسی که برای یک شی ء در LEVEL EDITOR می کنیم ... برای نام اکشن باید نام شی ء‌مورد نظر ما در LEVEL EDITOR باشد ... برای تعیین نام یک شی ء در level editor باید روی شی راست کلیک و گزینه ی Properties رفته و سپس به تب Behaviour کلیک کرده و در قسمت Action برای شی یک نام بر گزینید !
توجه : اگر نام اکشن درون Level editor نباشد برنامه پیغام خطا می دهد !

تابع چیست ؟

تابع ها یک سری عوامل هستند که قسمتی از آنها را خود برنامه تعریف کرده مثل تابع :

Main

خوب ... !

حال برای برنامه نویسی درون اکشن مورد نظرمان آماده می شویم !

برای این که یک کاری را به یک شی نصب بدهیم اول باید نام اکشن را در داخل اکشن مورد نظر به همراه یک نقطه ی کوچک همراه با مشخصات برای آن بنویسیم ... مثلا اسم اکشن ما محسن است :


Mohsen.x = 25 ;


این دستور به برنامه می گوید که آبجکت محسن را در مختصات 25 بردار X قرار بده ... !

حال ما برای اینکه نخواهیم اسم اکشن را تایپ کنیم از پسوند MY استفاده می کنیم که My به جای نام می آید مانند دستور زیر !


My.x = 25 ;


بعضی از خصوصیات MY :


My.pan        گردش دور خود
My.tilt          چرخش به بالا و پایی
My.roll          چرخش به چپ و راست
My.flare        براق کردن شی
My.x              کنترل محور x
My.y              کنترل محور Y
my.z               کنترل محور Z


و ...  !

حلقه های تکرار :

آموزش دستور While :

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


While ( *) {
دستورات
}


در پرانتز به جای علامت * شرطی مورد نظر خود را قرار دهید !

توجه :

اگر می خواهید حلقه ی شما بی نهایت باشد به معنی اینکه حلقه ای که برایش تعریف کردید هیچ وقت تمام نشود به جای * در داخل پرانتر یک عدد مثل 1 بگذارید ... !

مثال :


action Mohsen{
while(1) {
My.pan +=1 ;
}
}


این دستور آبجکت محسن را تا بینهایت دور خود می چرخاند !

دقت کنید به دستور :



My.pan  +=1 ;


این دستور به برنامه می گوید هر دفعه به مقدار X یکی اضافه کن !

در آخرین پست آموزشیم استفاده از حلقه ی While را درس دادم ولی یه چیز یادم رفت بگم :


action Mohsen{
while(1) {
Wait(1) ;
My.pan +=1 ;
}
}


ملاحظه می کنید که درون حلقه ی While من دستور Wait را اضافه کردم و داخل () عدد یک را گذاشتم ... حال این دستور چیست :

اگر این دستور را نزنید برنامه فقط آخر حلقه را به شما نمایش می دهد ولی اگر این دستور را بزنید لحظه به لحظه ی حلقه و تغییرات آن را نمایش می دهد ... !

استفاده از دستور Wait درون حلقه ی While ضروری است !

جملات شرطی :

برای تعریف یک شرط برای ایجاد یک دستور به شکل زیر عمل می کنیم :

if (*) {
دستورات
}


در داخل پرانتز بالا به جای علامت * یک شرط قرار دهید ... برای مثال در دستور زیر گفته ایم اگر متغییر U  مقدارش به 20 رسید شکل شی محسن شروع کند دور خود بچرخد !


While(1) {
wait(1) ;
if ( U ==20) {
mohsen.pan +=1 ;
}
}


در دستور بالا دقت کردید که ما در اول جمله ی شرطی خود دستور While را به کار بردیم !

حال برای چه ؟

برای اینکه اگر ما این دستور را بزنیم به برنامه گفته ایم که هر وقت که U به 20 رسید در غیر این صورت اگر ما از دستور While استفاده نمی کردیم برنامه ی ما هیچ وقت اجرا نمی شد !

در پست قبلی آموزش استفاده از دستور IF را  توضیح دادم و مجبور شدم این نکته را در یک پست دیگه قرار بدم :

در مثال دیدید گه من دستور زیر را دادم :


if ( U == 25) {
}


علامت == یعنی مساوی !
علامت != یعنی نامساوی !
علامت && یعنی و !

یه نکته ی دیگر هم بگم :

برای اینکه به برنامه بگویید اگر شرط اجرا شد این کار و اگر شرط اجرا نشد کار دیگری انجام شود باید از دستور زیر استفاده کنید :


if (*) {
دستوراتی که در صورت درست بودن شرط می خواهید اجرا شوند .
}else{
دستوراتی که در صورت اشتباه بودن شرط می خواهید اجرا شوند .
}


خوب این دستور به واضحی معلوم است و فقط باید به جای * شرط خود را بنویسید !

آموزش کنترل توسط صفحه کلید :

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


while (1) {
wait (1) ;
if (key_any == on ) {
دستورات ;
}
}


حال برای اینکه مثلا بخواهیم بگوییم اگر کلید M فشار داده شد دستورات اجرا شود باید از دستور زیر استفاده کنید :


While (1) {
wait(1);
if (key_m == on ){
دستورات ;
}
}


نکته : دیدید که من برای هر دستور اولش حلقه ی While + Wait را تعریف کردم چون اگر تعریف نمی کردم این دستورات فقط یک بار اجرا می شدند .

مطابق دستور به جای M می توانید کلید های دیگری را نیز جایگزین کنید اما برای کلید ها ی بالا و پایین و چپ و راست باید این جمله ها را قرار دهید :

کلید چپ : Key_cud
کلید راست : key_cuu
کلید بالا : Key_cur
کلید پایین : key_cul

خوب رسیدیم به یکی از سخت ترین قسمت های بازی سازی یعنی ایجاد یک شکل در طول بازی :

شما بعضی از وقت ها مثلا می خواهید از تفنگی تیر شکلیک شود  یا مثلا ایجاد یک سیستم ذره ای کنید ... برای این کار ها شما باید ابتدا آموزش زیر را بخوانید :

برای ساختن اشیاء در طول و در حین بازی باید از دستور Ent_create استفاده کنید :


ent_create(*,#,%) ;


* :

شما باید به جای این علامت آدرس شی خود که با فرمت Mdl در فولدر مخصوص بازی خودتان ذخیره کردید بدهید برای این کار باید اول یک رشته تعریف کنید ( فرض می گیریم فایل MDL شما محسن نام دارم و اسمی که می خواهید برای رشته بگذارید هم محسن نام دارد ) !


String Mohsen = <Mohsen.mdl>;


حال شما با تعریف کردن این رشته به جای علامت * فقط باید اسم رشته ای که تعریف کردید و ما در اینجا محسن تعرفی کرده ایم را قرار دهید !

# :

به جای این علامت باید شما محله ساخته شدن شی خود را تعریف کنید ... برای این کار باید از دستور زید استفاده کنید :


Vector(x,y,z) ;


که به آنها مقدار بدهید ... می توانید از دستور بالا هم استفاده نکنید و هرچی خودتان خواستید بزنید ... !


% :


شما در این قسمت باید نام تابع کنترل کننده ی این شی ساخته شده را بگویید ( در مورد تابع قبلا حرف زده شده بود ) ! اگر هم تابعی ندارید از دستور زیر به جای % استفاده کنید :


Null



حال یک مثال :


ent_create(Mohsen,vector(20,50,70),Null);


این مثال نیازی به توضیح ندارد چون کامل درس داده شده !

دسته ها :
دوشنبه بیست و سوم 10 1387
X