تور لحظه آخری
امروز : یکشنبه ، 9 اردیبهشت 1403    احادیث و روایات:  امام علی (ع):چه بسيار عزيزى كه، نادانى اش او را خوار ساخت.
سرگرمی سبک زندگی سینما و تلویزیون فرهنگ و هنر پزشکی و سلامت اجتماع و خانواده تصویری دین و اندیشه ورزش اقتصادی سیاسی حوادث علم و فناوری سایتهای دانلود گوناگون شرکت ها

تبلیغات

بلومبارد

تبلیغات متنی

تریدینگ ویو

خرید اکانت اسپاتیفای

کاشت ابرو

لمینت دندان

ونداد کولر

لیست قیمت گوشی شیائومی

صرافی ارکی چنج

صرافی rkchange

دانلود سریال سووشون

دانلود فیلم

ناب مووی

تعمیر گیربکس اتوماتیک

دیزل ژنراتور موتور سازان

سرور اختصاصی ایران

سایت ایمالز

تور دبی

سایبان ماشین

جملات زیبا

دزدگیر منزل

ماربل شیت

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

آموزش آرایشگری رایگان

طراحی سایت تهران سایت

آموزشگاه زبان

اجاره سند در شیراز

ترازوی آزمایشگاهی

رنگ استخری

فروش اقساطی کوییک

راهبند تبریز

ترازوی آزمایشگاهی

قطعات لیفتراک

وکیل تبریز

خرید اجاق گاز رومیزی

آموزش ارز دیجیتال در تهران

شاپیفای چیست

فروش اقساطی ایران خودرو

واردات از چین

قیمت نردبان تاشو

وکیل کرج

قیمت فنس

armanekasbokar

armanetejarat

صندوق تضمین

سیسمونی نوزاد

پراپ تریدینگ معتبر ایرانی

نهال گردو

صنعت نواز

پیچ و مهره

خرید اکانت اسپاتیفای

صنعت نواز

لوله پلی اتیلن

کرم ضد آفتاب لاکچری کوین SPF50

دانلود آهنگ

طراحی کاتالوگ فوری

واردات از چین

اجاره کولر

دفتر شکرگزاری

تسکین فوری درد بواسیر

دانلود کتاب صوتی

تعمیرات مک بوک

قیمت فرش

خرید سی پی ارزان

 






آمار وبسایت

 تعداد کل بازدیدها : 1798439221




هواشناسی

نرخ طلا سکه و  ارز

قیمت خودرو

فال حافظ

تعبیر خواب

فال انبیاء

متن قرآن



اضافه به علاقمنديها ارسال اين مطلب به دوستان آرشيو تمام مطالب
archive  refresh

آموزش زبان برنامه نویسی گیم میکر (gml)


واضح آرشیو وب فارسی:سایت ریسک: mst_ab21-01-2008, 05:08 PMسلام ؛ راستشو بخواین من خیلی بلد نیستم ولی خوشحال میشم همون چیزی رو که بلدم به بقیه بگم . مدتی روی یک پروژه ی پازل کار می کردم تو طول این مدت تجربه ی کمی بدست آوردم . البته الآن چون دقیقاً موقع امتحانا هستش سخته که هر روز پای کامپیوتر بشینم و درس نخونم ! (دانشجو ها بهتر می فهمن!) ولی قول میدم هر 2-3 روز حتماً تاپیک رو آپ کنم. در هر صورت اگه دوست دارید همین حالا اعلام کنید! منتظر هستم! mst_ab22-01-2008, 01:17 PMخوب! ممنون از نظرات خوبتون!چون هیچکس هیچ نظری نداد من خودم شروع می کنم!::31: بخش اول : آن چه باید برای شروع بدانید؛ دسته بندی های مختلفی برای زبان های برنامه نویسی ارائه شده که هر کدام بر اساس یک ویژگی زبان را به چند گروه تقسیم میکنن.مثلاً می گن زبان های سطح بالا ، میانی ، پایین.(که ویژگی این نوع تقسیم نزدیکی زبان به زبان انسان است.) یکی از این دسته بندی ها ، دسته بندی بر اساس نوع برخورد کامپایلر یا مترجم زبان ، با خطوط برنامه نویسی است.بر اساس این دسته بندی زبان های برنامه نویسی به دو دسته ی روالی(proceduralیا مرحله ای ) و شئ گرا (object oriented)تقسیم می شوند.حالا هر کدوم چی هستن توضیح میدم: 1-زبان های مرحله ای یا روالی( همون پراسیجرال انگلیسیش بهتره ):در این نوع زبان ها، کامپایلر به ترتیب از بالا خطوط برنامه را می خواند و آن ها را ترجمه می کند.البته این مطلب به این معنی نیست که کامپایلر حق پریدن از روی یک یا چند خط را ندارد و یا دسترسی به خطوطی که از روی آن ها گذشته امکان ندارد (یعنی امکان دارد!)ولی مبنای رفتار این نوع زبان ها خواندن خط به خط خطوط برنامه می باشد.از نمونه های این زبان می توان به زبان های سی ، فرترن ، کیوبیسیک و ... اشاره کرد. 2- زبان های شئ گرا : شما در حال حاضر می توانید اشیاء زیادی را در کنار خود ببینید (شاید هم نتوانید!).مثلاً به در اتاق خودتون نگاه کنید . . . . نگاه کنید . . . . بسه دیگه نگاه نکنید!! .درِ اتاق یک شئ است . این شئ دارای ویژگی هایی است.مثلاً طول و عرض دارد ، جنس دارد ، دستگیره دارد ، رنگ دارد ، پوستر ....... دارد!!!! و البته این در بی خاصیت نیست و می توان با آن کار هایی انجام داد مثلاً دستگیره ی آن را حرکت داد ، آن را به یک طرف باز کرد و .... حالا با خودتون فکر کنید که کاشکی می شد یه زبان برنامه نویسی درست می شد که به همه چیز مثل یک شئ نگاه کنه.(منظورم بقیه چیزها هست نه خودش).تبریک میگم!! آرزوی شما خیلی وقته که برآورده شده! زبان برنامه نویسی شئ گرا دقیقاً همون چیزیه که شما می خواستین!!.زبان برنامه نویسی شئ گرا همه چیز را شئ می پنداره و برای اونها صفت و خاصیت در نظر می گیره .مثلاً یک دکمه یا یک جعبه ی متنی (که مثلاً مقدار داخلی داره رنگ داره و مثل در خیلی از صفت های دیگه رو هم داره). برای هر شئ ممکنه یک سری اتفاق هایی بیفته و در مقابل شئ یک سری عکس العمل هایی از خودش نشون بده (برای درک بهتر می توانید صدای موزیک کامپیوتر را بلند کنید تا ببینید چه عکس العمل هایی روی شئ شما رخ می دهد!!)بارز ترین مثال برای این نوع زبان ویژوال بیسیک خودمونه ،که انشاءالله اگر بچه ها استقبال کنن خیلی دوست دارم تا آموزش اون رو هم بذارم . زبان شئ گرا رو نباید با خاصیت ویژوال بودن بعضی زبان ها اشتباه گرفت . ویژوال به زبان ساده (که من همیشه طرفدار زبان ساده هستم نه قلمبه !!)یعنی این که با موست بتونی یک چیزی رو توی صفحه ی برنامه بذاری.این قدر ساده شد که خودمم نفهمیدم چی گفتم! یه چیز دیگه تا یادم نرفته :زبان برنامه نویسی شئ گرا یک سری کد به هم چسبیده نیست یعنی کد های برنامه، برای هر شئ مثل یک دکمه یا متن به صورت تکه های جدا از هم نوشته می شوند و کامپایلر برنامه مدامچک می کنه که آیا برای اشیاء برنامه اتفاقی افتاده یا نه !یک مثال من دراوردی می تونه به شما کمک زیادی بکنه :این دقیقاً مثل این میمونه که مادری دلسوز مدام چک می کنه برای بچه هاش اتفاق افتاده یا نه(مثلاً لباساشونو کثیف کردن یا نه!!) اگه اتفاق نیفتاده بود که هیچی دوباره چک میکنه! ولی اگر اتفاق افتاده بود . . . وای به حال بچه ها !! یک سری تغییرات از پیش تعیین شده ای روشون اجرا میشه!! مثلاً صفت رنگ روی صورت یکی از بچه ها به رنگ قرمز تبدیل می شه!!!..توی محیط زبان های برنامه نویسی شئ گرا هم دقیقاً همینه : کامپایلر مدام چک میکنه که روی اشیاء موجود اتفاقی (Event) افتاده یا نه .(البته کامپایلر فقط یک بار کد ها رو کامپایل می کنه طوری که وقتی اجرا میشه مدام چک میشه نه این که کامپایلر مدام برنامه رو کامپایل کنه! )اگر اتفاق نیفتاده بود که هیچی دوباره چک میکنه ولی اگر اتفاق افتاده بود یک سری عکس العمل هایی (Action) روی اون شئ و حتی اشیاء دیگر رخ می ده (البته الکی رخ نمیده! ما تعیین می کنیم چی رخ بده چی رخ نده !)مثلاً یک دکمه وقتی روی آن کلیک می شود این در واقع یک ایونت یا اتفاق است و در مقابل می توان برای آن اکشنی هم در نظر گرفت مثلاً رفتن به صفحه ای دیگر یا بستن یک پنجره. حالا شاید بعضی هاتون بگن چرا چرت و پرت میگی اینا چیه داری میگی اینا چه به درد برنامه نویسی گیم میکر می خوره اولین چیزی که شما باید بدونید اینه که زبان GML یا GAME MAKER LANGUAGE یک زبان شئ گرا است. اگر فکر می کنین خیلی کشش می دم یا شاید بعضی ها از کامپایلر و این جور چیزا هیچی نمی فهمن بگید تا اصلاح کنم. ضمناً ببخشید اگر شوخی کردم می خواستم خسته نشید! تا نظر ندید بقیه ی داستان رو نمی گم!!!:41::27: Moh3en_DDD22-01-2008, 06:27 PMسلام ! تا آخر برو ... کاوری .. :d Max200022-01-2008, 07:38 PMبه نام خدا سلام من دارم خواب مي بينم يا واقعا يه ناجي پيدا شده تا به ما مبتديها كمك كنه من دربست تو اين تاپيكم ولي يادتون باشه اول برنامه نويسي دوبعدي بعد كه كاملا دو بعدي آموزش داده شد سه بعدي آموزش داده بشه و لطفا از سطح مبتدي شروع به آموزش كنيد در ضمن كدام نسخه گيم ميكر هست؟؟؟!!! mst_ab24-01-2008, 01:12 PMخیلی ممنون از همه، اول جواب ها رو بدم بعد بریم سراغ قسمت دوم داستان! اول این که من 3d رو دارم تازه یاد می گیرم(از روی هلپ خود برنامه)و هنوز به حدی نرسیدم که بتونم آموزش بدم و 2d هم فهرست خوبی برای ارائه ندارم همین جوری من دراوردی(!) یک فهرست ساختم تا بگم---من قول می دم از مبتدی شروع بشه ولی این که کجا تموم بشه نمی دونم ! (چون خودم مبتدی هستم !) و این بستگی به شما داره که چه جوری با من راه بیاین. من با ورژن 5 شروع کردم و بعد از 6 الآن دارم از 7 استفاده می کنم ، هنوز به جایی بر نخوردم که تغییراتی در نگارش(syntax) دستورات دیده باشم.البته اون جوری که آقای اورمارس می گفت خیلی از کرش ها و باگ های ورژن های قبلی در ورژن 7 برطرف شده.کرک ورژن 7 گیم میکر ، Loader هست و ممکنه کار با اون یکم اعصابتونو خورد کنه !(ولی من اعصابم قویه!)شما می تونید با همون 6 یا 5 کار کنید . بنده ی حقیر ناجی نیستم – من حتی تا چند روز قبل نمی دونستم که گیم میکر کامپایلر نداره و به جای اون مفسر داره (که خودش نشونه ی ضعف خیلی بزرگی در منه)من فقط با خوندن E-Book ، هلپ خود برنامه و کتاب خود گیم میکر (که داره تو سایتش تبلیغ می کنه ) یه چیزایی یاد گرفتم و همین الآن هم هنوز تو قسمت 2 بعدی گیم میکر دست و پا می زنم!!!( به قول مشهدی ها غُطّه می خورم!!!).ولی مطمئن باشید تا وقتی 2D تموم بشه منم از تنبلی درمی یام و 3D رو هم شروع می کنم به خوندن. ولی نتیجه ی نهایی کار رو باید از خودتون انتظار داشته باشید نه از آموزش من! چون فقط در این تاپیک قراره اسکریپت نویسی رو آموزش بدیم قسمت های قبلی گیم میکر رو فاکتور گرفتم(که البته دوستان دیگه لطف کرده بودن آموزش های کاربری گیم میکر رو گذاشته بودن. دونستن این نکته خالی از لطف نیست که تمام چیز هایی رو که توی قسمت اکشن آبجکت های گیم میکر میبینین رو میشه با اسکریپت نویسی گیم میکر پیاده کرد پس کسانی که هیچی در مورد گیم میکر نمی دونن لطف کنن آموزش های قبلی دوستان رو بخونن تا این جا مشکل براشون پیش نیاد . باز هم اگر دوستان فکر می کنن از اولِ اول ِ اول ِ ..........(!) بگم بهتره ، به من بگین تا این پست رو پاک کنم و از صفر شروع کنم. البته با شناختی که من از بعضی افراد تاپیک بازی دارم بعید می دونم همچنین چیزی پیش بیاد که هر کدوم در ساخت بازی استاد هستند . یکم از کلیات گیم میکر می گم بعد بریم سراغ کد نویسی: mst_ab24-01-2008, 01:18 PMبخش اول –قسمت دوم: آشنایی با محیط کار http://i32.tinypic.com/29y1bgj.gif این پنجره رو چندین هزار(!) بار دیدید اما آیا دقت کردید جریان مادر و بچه ها دقیقاً این جا برقراره ؟!! (عزیزانی که این موضوع براشون گنگ می زنه پست دوم من را بخوانند!) قسمت های مختلف عکس رو با عدد مشخص کردم. 1-مشخصات کلی آبجکت(=شئ) یا همون بچه(!) مثل اسم بچه ، قیافه ی بچه ، شماره ی کفش !! و این جور چیزا ! 2-Events :اتفاق هایی که اگر برای یک بچه بیفته باید تغییراتی روش اعمال بشه (مثلاً اتفاق ِ کثیف شدن لباس!) 3-Actions: عکس العمل هایی که مادر(!)(همون مفسر) در برخورد با اتفاقی خاص مثل کثیف شدن لباس بچه ها از خودش نشون میده. (برای هر اتفاق فرق می کنه) 3.1- دسته بندی اتفاق ها توی این قسمت خاکستریه مثلاً عمل های حرکتی ، عمل های چرخشی! ، عمل های گردشی !!!!(فقط همون اولی رو جدی بگیرید!!!) 3.2-جایی هست که ما باهاش خیلی کار داریم! ولی هنوز خیلی وارد جزئیات نمی شیم! شرط می بندم که تا حالا این موضوع رو اینجوری نگاه نکرده بودین! اسکریپت ها رو کجا باید بنویسیم؟ خوب یک جواب منطقی اینه که اسکریپت ها باید یه کاری (عکس العملی ) انجام دهند پس باید در قسمت Actions گذاشته بشن.ولی همین طوری که نمی شه یک عکس العمل ایجاد کرد همون طور که از اسمش معلومه باید یک عمل باشه تا عکس العمل معنی پیدا کنه .پس حتماً یک Event باید قبلش ایجاد شده باشه . نکته1: Event های Empty یا رویداد هایی که عکس العملی برای اون ها در نظر گرفته نشده به طور خود کار از لیست Events حذف می شوند. نکته2:ترتیب در لیست رویداد ها مهم نیست امّا در لیست Actions ها اهمیت دارد. بعد از ایجاد یک Event به تب کنترل برید و توی زیر قسمتcode دو تا گزینه برای ایجاد یک اسکریپت داره یکی Execute code و Execute script حالا فرق این دو تا چیه به زبان ساده عرض می کنم ( البته نه مثل قبل!): 1- Execute code: اگر قرار باشه مفسر اسکرپتی را برای 1 آبجکت اجرا کنه بهتره ما از همین یکی استفاده کنیم امّا: 2- Execute script : گاهی وقتا پیش می یاد که برای بیش تر از 1 آبجکت (مثلاً 70-80 تا! و یا حتی بیشتر) باید یک اسکریپت اجرا بشه. در این حالت بهترین راه اینه که شما یک اسکریپت مادر بنویسد (از منوی Resources گزینه ی Create Script را انتخاب کنید یا کنترل + آلت + Cرو بزنید)و به همه ی آبجکت ها بگید در صورتی که فلان اتفاق افتاد ، همه برید اسکریپت شماره ی فلان رو اجرا کنید . این جوری لازم نیست که 70- 80 بار یک اسکریپت رو برای همه ی آبجکت ها تایپ کنید و هم از سنگین شدن و زیاد شدن حجم بازی جلوگیری میشه . یاد آوری : 70 – 80 تا آبجکت یعنی 70 – 80 تا شئ مختلف در گیم میکر، شما یک شئ یا آبجکت می سازید و از روی آن نمونه هایی در Room قرار می دهید که همه رفتار های مشابهی دارند به هر یک از این نمونه ها instance of object یا نمونه ای از ک آبجکت گفته می شود . این خاصیت خوبی است که شما می توانید مثلاً برای ساخت Enemy های یک بازی platform فقط یک آبجکت بسازید و از آن نمونه های زیادی در بازی قرار دهید هر کدام از این نمونه ها (instance) همان رفتار آبجکت اصلی را دارد در حقیقت کپی ای از همان آبجکت است. با انتخاب گزینه ی اول Execute code و یا ایجاد یک اسکریپت بزرگ (Create Script از منوی Resources) پنجره ای باز میشه که محیط برنامه نویسی GML همین جاست! و حالا حالا ها خیلی این جا کار داریم! فقط یک معرفی جزئی از بخش های این قسمت می کنم. http://i30.tinypic.com/2apaja.gif 1- این قسمت نوار ابزار (شاید !) هست .از سمت چپ به راست: ذخیره ی تغییرات،پرینت، undo که البته 32 بار بیشتر نیست و می تونید ار قسمت File>Preferences>Script and Code> Number of Undo: می تونید تعداد آندو ها رو تغییر بدید. بعد از آندو ، ردو،بریدن ، رونوشت(فارسی کردن اینا جالبه! منظورم همون کپیه!)،چسباندن(پیست)، جستجوی یک عبارت، جایگزینی یک عبارت با عبارت دیگر،رفتن به خط مشخص، و از همه مهم تر اشکال یابی نگارشی که فوق العاده برای اسکریپت های بزرگ خوبه البته بعضی وقتا گیج می زنه!، قسمت بعدی هلپ برنامه هست و قسمت آخر هم برای اسکریپت فرق می کنه و باید یه توضیحی بعداً بدم هنوز در مورد این ها : selfو other چیزی نگفتم. 2- این همون قسمتیه که ما باید کد های برنامه رو این جا بنویسیم. 3- یکی از ویژگی های خوب برنامه ، این قسمت پایینه به محض اینکه گیم میکر متوجه بشه شما دارین چی تایپ می کنین کمکتون می کنه تا نگارش اون تابع و ... رو ببینید تا اشتباه نکنید. 4- status bar هست و موقعیت مکانی مکان نما رو به شما نشون می ده مثلاً خط اول کاراکتر بیست و پنجم.(وقتی تو برنامه مشکل پیدا می شه یه پیغام نمایش داده می شه و به شما نشونی اون جایی که خطا ایجاد شده می ده و شما می تونید اونو پیدا کنید) ان شاء الله جلسه ی دیگه میریم سراغ خود نگارش GML و البته تکلیف و مشق شب و روز هم داریم! دوستان مفاهیم پایه ای برنامه نویسی مثل :انواع داده ها ، متغیر ها ، اعمال ساده ی ریاضی ، توابع و ساب روتین ها و ... رو بدونن بهتره اگه ندونن خوب عیبی نداره بگید اینا رو هم با کمک هم میگیم! در ضمن هر گونه کپی برداری و اعمال تغییر در نگارش بنده و استفاده این مطالب در وبلاگ ها ، سایت های آموزشی و انجمن های دیگر بدون اجازه ی کتبی یا شفاهی از بنده نه تنها عیبی ندارد بلکه توصیه هم می شود!!!!!!!!!! و اصلاً نیازی هم به ذکر منبع نیست! من افتخار می کنم اگر بتوانم ذره ای به صنعت بزرگ بازی سازی در کشور کمک کنم و امیدوارم تمام دوستان با من هم عقیده باشند. در آخر این جلسه هم 5 دلیل از کتابDesigning Arcade Computer Game Graphicsنوشته ی Ari Feldman می آورم که مبین آن است که چرا صنعت بازی 2D Arcade هنوز پا بر جاست و طرفداران زیادی دارد .اگر کشور ما نمی تواند بازی 3D درست و حسابی بسازد مطمئناً تشکیل گروه های 10-15 نفره برای ساخت بازی های 2D نتیجه بخش خواهد بود: 1-به دلیل این بیشتر این بازی ها از حجم کمی برخوردارند می توان از آن ها برای استفاده ی آنلاین در اینترنت استفاده کرد ( مثل سایت پوگو که از پلت فرم جاوا استفاده می کند). 2-هنوز فروخته می شوند و می توان از آن ها برای کسب درامد استفاده کرد( البته نه بازی های ساده ی ما) 3-لذت خاصی در بازه های 2D هست که در بازی های 3D نیست ! 4-ساخت گرافیک بازی های 2D بسیار ساده هستند( البته نه خیلی!) 5-ساخت بازی های 2D به زمان زیاد و یا سرمایه های هنگفت احتیاج ندارد ؛ ساخت بازی های دو بعدی به ملزومات سخت افزاری نرم افزاری و از همه مهمتر زمان زیادی احتیاج ندارد . برای مثال تمامی گرافیک های ساخته شده در این کتاب (کتاب بنده خدا!) در کمتر از 1 ساعت یک برنامه ی گرافیکی زیر 200 دلار و یک کامپیوتر پنتیوم ساده انجام شده.در مقایسه برای ساخت بازی های 3D ، هزاران دلار سرمایه ی مالی فقط برای خرید بعضی برنامه های گرافیکی پیشرفته ، زمان های طولانی و تعداد افراد گروه زیاد نیاز مند است. ببخشید بیشتر از کوپن خودم حرف زدم! Max200024-01-2008, 03:20 PMبه نام خدا ايول ادامه بده mst_ab26-01-2008, 11:16 PMاز این به بعد هر چی میگم هلپ خود گیم میکر+حرف های خودمه (چه آشی بشه!) فقط توجه داشته باشین از این به بعد یکم سخت تر میشه و نیازمند توجه بیشتره .و من از درصد شوخی ها کم می کنم!!. البته هیچ وقت از همه ی چیزایی که میگم استفاده نخواهید کرد ولی یاد گرفتنشون بی فایده نیست. فهرست GML که از این به بعد قراره تو بخش دوم اینا رو بگم : mst_ab29-01-2008, 10:05 PMبه نام خدا خوبه کجاش خوبه!!!! :41:نه می تونم ویرایش کنم نه پاکش کنم ! مهدی هم که هیچ وقت آن نیست که پاکش کنه.عجب غلطی کردم . فکر کنم باید دو باره پست تکراری بدم اینجا که کسی نیست به دادم برسه. Moh3en_DDD30-01-2008, 12:08 AMکجاش خوبه!!!! :41:نه می تونم ویرایش کنم نه پاکش کنم ! مهدی هم که هیچ وقت آن نیست که پاکش کنه.عجب غلطی کردم . فکر کنم باید دو باره پست تکراری بدم اینجا که کسی نیست به دادم برسه. ... نه بابا ... تاپیک خیلی عالیه ... اون پست هم زیاد مشکلی نداره ... میشه فهمید ... ادامه بده تا مهدی آن شه ... mst_ab30-01-2008, 12:14 PMبخش دوم:نگاهی کلی به زبان GML ساختار کلی یک برنامه در GML متغیر ها انتساب Expression(گزاره) متغیر های اضافی آدرش دادن یک متغیر در دیگر نمونه آبجکت ها آرایه ها عبارات شرطی Repeat While Do For Switch Break Continue Exit توابع اسکریپت ها ساختار With توضیح گذاری یا کامنت در برنامه توابع و متغیر ها در GML mst_ab30-01-2008, 12:16 PMزبان GML مخلوطی از پاسکال ، C ، C++ هست و یکم قاطی پاتیه! اگر پاسکال یا C بلد نیستید بهتر! چون اگه بلد بودید دستورات رو با هم قاطی می کردید! (البته افرادی مثل من ). همیشه یادتون باشه گیم میکر بهترین انتخاب نیست. برای شرع چند چیز خیلی مهم هست که باید اون ها رو رعایت کنید: نام تمامی منابع(اسپرایت ها،آبجکت ها، صدا ها و ...)باید با یک حرف شروع شده باشد و فقط هم شامل حروف ، اعداد و کاراکتر زیرحرف (آندر اسکور «_» ) باشد در غیر این صورت شما نمی توانید از داخل برنامه رو برای اونا برنامه بنویسید. این مطلب به این معنی نیست که نام bat1_2غیر معتبر است (یعنی معتبر است!) این یعنی به غیر از حروف ، اعداد و یا _ چیز دیگری برای نام منابع معتبر نیست مثلاً # ، % ، @ ، & . نمونه هایی از نام های معتبر و غیر معتبر در زیر آورده شده: غیر معتبر: Ha$an دارای کاراکتر غیر مجاز دالر $ است. Len 2 دارای کاراکتر غیر مجاز فاصله (Space) است. 2len نام یک منبع باید با حرف شروع شود نه عدد یا آندر اسکور global علّت در ادامه گفته میشه! مثال هایی برای معتبر کردن موارد بالا: Hasan Len_2 Len2 global0 مطمئن بشید تمام منابع دارای نام های متفاوت باشند.(مثلاً 2 تا آبجکت هم نام نداشته باشید) و نامشون نباید از موارد زیر باشد : 1-self 2-other 3-global 4-all به خاطر این که این نام ها در GML معناهای خاصی برای خودشون دارن.برای امتحان یک آبجکت با نام global را در یک روم قرار دهید و بازی را اجرا کنید مطمئناً دیگه این کار رو نخواهید کرد! نکته :GML به بزرگی یا کوچکی حروف حساس است و GLOBAL با global در GML فرق دارند. نکته 2:به خاصیت برنامه هایی مثل سی یا GML که به بزرگ یا کوچیک بودن حروف حساس هستند Case Sensitive میگن. mst_ab30-01-2008, 12:19 PMساختار کلی یک برنامه: یک برنامه شامل یک سری دستورالعمل هایی است که Statement یا عبارت نامیده می شود مثلاً !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! یک استیت منت است. یک بلوک برنامه به علامت «}» شروع می شه و با «{» خاتمه پیدا می کنه و برنامه ی ما بین این دو سیمبل (علامت) نوشته می شه.اگر تعداد عبارات یا بیانیه ها بیشتر از یکی باشه با استفاده از علامت «;»سمیکالن (semicolon) اونا رو از هم جدا می کنیم.خوب بنابر این ساختار کلی یک برنامه در GML به صورت زیر در می یاد : !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! همون طور که قبلا مثال زدم statement ها می تونن مختلف باشن نمونه هایی از اونها رو در زیر می بینید: اینا مثاله!! نمی خواد یاد بگیردید!! عبارات ساده مثل انتساب :a=12 عبارت پیچیده تر مثل شَرط(چیز دیگه نخونید!!): if A > 3 then WRITELN(A) else WRITELN("NOT YET") end در ادامه به بررسی عبارات مختلف می پردازیم. mst_ab30-01-2008, 12:23 PMمتغیر ها : مثل هر زبان برنامه نویسی دیگه GML هم متغیر داره . متغیر ها در حقیقت قسمتی از حافظه هستند که اطلاعات را درون خودشون نگه می دارن . متغیر ها اسم دارند و شما می تونید به اون ها مقدار نسبت بدید . یک متغیر در GML می تونه مقادیر حقیقی (مثل:3.4 یا -5.01 یا 5 تا حد اکثر 10 رقم اعشار) یا مقادیر رشته ای(دنباله ای از حروف کهبا تک کوتیشن یا دو کوتیشن مشخص میشن ( مثل:’mostafa’یا ‘Your score’) را در خودش نگه داره. متغیر ها احتیاج ندارند که در ابتدای برنامه اعلام بشن.مثلاً در فرترن شما باید قبل از استفاده از متغیر نوع اون رو در ابتدای برنامه اعلام کنید .به عنوان مثال برای تعریف متغیر X از نوع حقیقی باید عبارت !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! رو اول برنامه تایپ کنین.(شما نمی خواد تایپ کنین(! mst_ab30-01-2008, 12:25 PMمتغیر هایGeneral (کلی)و متغیر های Local (محلی) متغیر های درونی زیادی در GML وجود دارند بعضی ها مثل mouse_x و mouse_y کلی(general) هستند.( داخل این دو تا متغیر موقعیت موس شما(xو yبرحسب پیکسل) در صفحه ی بازی ،به صورت مکرر آپدیت می شه.)و بعضی دیگه محلی (local) هستند و مثل انگل برای حیات به بدن زنده نیاز دارن! این بدن زنده می تونه یک نمونه آبجت باشه.مثل x و y که موقعیت فعلی یک نمونه از یک آبجکت را در خود نگه می داره.متغیر های کلی را همه ی آبجکت ها و نمونه های آن ها می شناسن مثلاً Score یک متغیر جنرال هست و فرقی نداره برای کدوم متغیر بنویسید که به اسکور یکی اضافه بشه در هر صورت یک اسکور بیشتر نیست و به همون یک واحد اضافه می شه.ولی همون طور که گفتم xو y دو متغیر محلی هستند وقتی که شما برنامه ای می نویسین که مثلاً به x ، 30 واحد و به y ، 40 واحد (Pixel) اضافه بشه به همون آبجکتی اضافه می شه که این اسکریپت رو براش نوشتین. یکم شاید قاطی شد! بعداً راجع به این مطلب بیشتر صحبت می کنیم. یک متغیر یک نام داره که باید با یک حرف شروع بشه و فقط هم می تونه از حرف ، عدد و یا کاراکتر آندراسکور (_) تشکیل شده باشه (مثل منابع) حد اکثر تعداد طول یک متغیر 64 کاراکتر است.یک جمله از بهترین استاد دانشگاهمون(رضا خواجوی): نام متغیر ها رو در جهت گویایی هر چه بیشتر بلند اختیار کنید امّا نه آن چنان که نیمی از زمان تایپ برنامه ، مشغول تایپ نام متغیر ها باشید! مثلاً نام TheLengthOfTallestStringInTheGame اصلاً نام خوبی نیست! فکر اینجا رو هم بکنید که بعداً باید چه قدر با این نام دست و پنجه نرم کنید!( به کسی نگید.... برای استاد تبلیغ می کنم!!) وقتی شما یک متغیر جدید تعریف می کنید این متغیر فقط برای نمونه آبجکت فعلی (Current instance) شناخته می شه (میشه همون محلی یا Local) و برای بقیه ی نمونه آبجکت ها شناخته نمی شه.(حتی نمونه های آبجکت خودش) به عبارت دیگه شما می تونید برای هر آبجکتتون متغیری با نام یکسان ایجاد کنید که هر کدوم مقدار مختلفی داشته باشند. البته می تونید با اجرای یک اسکریپت برای آبجکتی تغییراتی در متغیر های محلی یک آبجکت دیگه رو � سایت ما را در گوگل محبوب کنید با کلیک روی دکمه ای که در سمت چپ این منو با عنوان +1 قرار داده شده شما به این سایت مهر تأیید میزنید و به دوستانتان در صفحه جستجوی گوگل دیدن این سایت را پیشنهاد میکنید که این امر خود باعث افزایش رتبه سایت در گوگل میشود




این صفحه را در گوگل محبوب کنید

[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 4203]

bt

اضافه شدن مطلب/حذف مطلب




-


گوناگون

پربازدیدترینها
طراحی وب>


صفحه اول | تمام مطالب | RSS | ارتباط با ما
1390© تمامی حقوق این سایت متعلق به سایت واضح می باشد.
این سایت در ستاد ساماندهی وزارت فرهنگ و ارشاد اسلامی ثبت شده است و پیرو قوانین جمهوری اسلامی ایران می باشد. لطفا در صورت برخورد با مطالب و صفحات خلاف قوانین در سایت آن را به ما اطلاع دهید
پایگاه خبری واضح کاری از شرکت طراحی سایت اینتن