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

[ + افزودن آگهی متنی جدید ]




صفحه 1 از 6 12345 ... آخرآخر
نمايش نتايج 1 به 10 از 60

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

  1. #1
    اگه نباشه جاش خالی می مونه mst_ab's Avatar
    تاريخ عضويت
    Oct 2007
    محل سكونت
    مشهد
    پست ها
    326

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

    سلام ؛
    راستشو بخواین من خیلی بلد نیستم ولی خوشحال میشم همون چیزی رو که بلدم به بقیه بگم . مدتی روی یک پروژه ی پازل کار می کردم تو طول این مدت تجربه ی کمی بدست آوردم . البته الآن چون دقیقاً موقع امتحانا هستش سخته که هر روز پای کامپیوتر بشینم و درس نخونم ! (دانشجو ها بهتر می فهمن!) ولی قول میدم هر 2-3 روز حتماً تاپیک رو آپ کنم. در هر صورت اگه دوست دارید همین حالا اعلام کنید! منتظر هستم!

  2. #2
    اگه نباشه جاش خالی می مونه mst_ab's Avatar
    تاريخ عضويت
    Oct 2007
    محل سكونت
    مشهد
    پست ها
    326

    پيش فرض

    خوب! ممنون از نظرات خوبتون!چون هیچکس هیچ نظری نداد من خودم شروع می کنم!:
    بخش اول : آن چه باید برای شروع بدانید؛
    دسته بندی های مختلفی برای زبان های برنامه نویسی ارائه شده که هر کدام بر اساس یک ویژگی زبان را به چند گروه تقسیم میکنن.مثلاً می گن زبان های سطح بالا ، میانی ، پایین.(که ویژگی این نوع تقسیم نزدیکی زبان به زبان انسان است.) یکی از این دسته بندی ها ، دسته بندی بر اساس نوع برخورد کامپایلر یا مترجم زبان ، با خطوط برنامه نویسی است.بر اساس این دسته بندی زبان های برنامه نویسی به دو دسته ی روالی(proceduralیا مرحله ای ) و شئ گرا (object oriented)تقسیم می شوند.حالا هر کدوم چی هستن توضیح میدم:
    1-زبان های مرحله ای یا روالی( همون پراسیجرال انگلیسیش بهتره ):در این نوع زبان ها، کامپایلر به ترتیب از بالا خطوط برنامه را می خواند و آن ها را ترجمه می کند.البته این مطلب به این معنی نیست که کامپایلر حق پریدن از روی یک یا چند خط را ندارد و یا دسترسی به خطوطی که از روی آن ها گذشته امکان ندارد (یعنی امکان دارد!)ولی مبنای رفتار این نوع زبان ها خواندن خط به خط خطوط برنامه می باشد.از نمونه های این زبان می توان به زبان های سی ، فرترن ، کیوبیسیک و ... اشاره کرد.

    2- زبان های شئ گرا : شما در حال حاضر می توانید اشیاء زیادی را در کنار خود ببینید (شاید هم نتوانید!).مثلاً به در اتاق خودتون نگاه کنید . . . . نگاه کنید . . . . بسه دیگه نگاه نکنید!! .درِ اتاق یک شئ است . این شئ دارای ویژگی هایی است.مثلاً طول و عرض دارد ، جنس دارد ، دستگیره دارد ، رنگ دارد ، پوستر ....... دارد!!!! و البته این در بی خاصیت نیست و می توان با آن کار هایی انجام داد مثلاً دستگیره ی آن را حرکت داد ، آن را به یک طرف باز کرد و ....
    حالا با خودتون فکر کنید که کاشکی می شد یه زبان برنامه نویسی درست می شد که به همه چیز مثل یک شئ نگاه کنه.(منظورم بقیه چیزها هست نه خودش).تبریک میگم!! آرزوی شما خیلی وقته که برآورده شده! زبان برنامه نویسی شئ گرا دقیقاً همون چیزیه که شما می خواستین!!.زبان برنامه نویسی شئ گرا همه چیز را شئ می پنداره و برای اونها صفت و خاصیت در نظر می گیره .مثلاً یک دکمه یا یک جعبه ی متنی (که مثلاً مقدار داخلی داره رنگ داره و مثل در خیلی از صفت های دیگه رو هم داره). برای هر شئ ممکنه یک سری اتفاق هایی بیفته و در مقابل شئ یک سری عکس العمل هایی از خودش نشون بده (برای درک بهتر می توانید صدای موزیک کامپیوتر را بلند کنید تا ببینید چه عکس العمل هایی روی شئ شما رخ می دهد!!)بارز ترین مثال برای این نوع زبان ویژوال بیسیک خودمونه ،که انشاءالله اگر بچه ها استقبال کنن خیلی دوست دارم تا آموزش اون رو هم بذارم . زبان شئ گرا رو نباید با خاصیت ویژوال بودن بعضی زبان ها اشتباه گرفت . ویژوال به زبان ساده (که من همیشه طرفدار زبان ساده هستم نه قلمبه !!)یعنی این که با موست بتونی یک چیزی رو توی صفحه ی برنامه بذاری.این قدر ساده شد که خودمم نفهمیدم چی گفتم!
    یه چیز دیگه تا یادم نرفته :زبان برنامه نویسی شئ گرا یک سری کد به هم چسبیده نیست یعنی کد های برنامه، برای هر شئ مثل یک دکمه یا متن به صورت تکه های جدا از هم نوشته می شوند و کامپایلر برنامه مدامچک می کنه که آیا برای اشیاء برنامه اتفاقی افتاده یا نه !یک مثال من دراوردی می تونه به شما کمک زیادی بکنه :این دقیقاً مثل این میمونه که مادری دلسوز مدام چک می کنه برای بچه هاش اتفاق افتاده یا نه(مثلاً لباساشونو کثیف کردن یا نه!!) اگه اتفاق نیفتاده بود که هیچی دوباره چک میکنه! ولی اگر اتفاق افتاده بود . . . وای به حال بچه ها !! یک سری تغییرات از پیش تعیین شده ای روشون اجرا میشه!! مثلاً صفت رنگ روی صورت یکی از بچه ها به رنگ قرمز تبدیل می شه!!!..توی محیط زبان های برنامه نویسی شئ گرا هم دقیقاً همینه : کامپایلر مدام چک میکنه که روی اشیاء موجود اتفاقی (Event) افتاده یا نه .(البته کامپایلر فقط یک بار کد ها رو کامپایل می کنه طوری که وقتی اجرا میشه مدام چک میشه نه این که کامپایلر مدام برنامه رو کامپایل کنه! )اگر اتفاق نیفتاده بود که هیچی دوباره چک میکنه ولی اگر اتفاق افتاده بود یک سری عکس العمل هایی (Action) روی اون شئ و حتی اشیاء دیگر رخ می ده (البته الکی رخ نمیده! ما تعیین می کنیم چی رخ بده چی رخ نده !)مثلاً یک دکمه وقتی روی آن کلیک می شود این در واقع یک ایونت یا اتفاق است و در مقابل می توان برای آن اکشنی هم در نظر گرفت مثلاً رفتن به صفحه ای دیگر یا بستن یک پنجره.

    حالا شاید بعضی هاتون بگن چرا چرت و پرت میگی اینا چیه داری میگی اینا چه به درد برنامه نویسی گیم میکر می خوره اولین چیزی که شما باید بدونید اینه که زبان GML یا GAME MAKER LANGUAGE یک زبان شئ گرا است.

    اگر فکر می کنین خیلی کشش می دم یا شاید بعضی ها از کامپایلر و این جور چیزا هیچی نمی فهمن بگید تا اصلاح کنم. ضمناً ببخشید اگر شوخی کردم می خواستم خسته نشید!
    تا نظر ندید بقیه ی داستان رو نمی گم!!!
    Last edited by mst_ab; 27-01-2008 at 13:45.

  3. #3
    حـــــرفـه ای Moh3en_DDD's Avatar
    تاريخ عضويت
    Jun 2005
    محل سكونت
    1391
    پست ها
    3,761

    پيش فرض

    سلام !

    تا آخر برو ... کاوری .. :d

  4. #4
    داره خودمونی میشه Max2000's Avatar
    تاريخ عضويت
    Aug 2007
    پست ها
    105

    پيش فرض

    به نام خدا
    سلام
    من دارم خواب مي بينم يا واقعا يه ناجي پيدا شده تا به ما مبتديها كمك كنه
    من دربست تو اين تاپيكم
    ولي يادتون باشه اول برنامه نويسي دوبعدي بعد كه كاملا دو بعدي آموزش داده شد سه بعدي آموزش داده بشه
    و لطفا از سطح مبتدي شروع به آموزش كنيد
    در ضمن كدام نسخه گيم ميكر هست؟؟؟!!!

  5. #5
    اگه نباشه جاش خالی می مونه mst_ab's Avatar
    تاريخ عضويت
    Oct 2007
    محل سكونت
    مشهد
    پست ها
    326

    پيش فرض

    خیلی ممنون از همه، اول جواب ها رو بدم بعد بریم سراغ قسمت دوم داستان!
    اول این که من 3d رو دارم تازه یاد می گیرم(از روی هلپ خود برنامه)و هنوز به حدی نرسیدم که بتونم آموزش بدم و 2d هم فهرست خوبی برای ارائه ندارم همین جوری من دراوردی(!) یک فهرست ساختم تا بگم---من قول می دم از مبتدی شروع بشه ولی این که کجا تموم بشه نمی دونم ! (چون خودم مبتدی هستم !) و این بستگی به شما داره که چه جوری با من راه بیاین.
    من با ورژن 5 شروع کردم و بعد از 6 الآن دارم از 7 استفاده می کنم ، هنوز به جایی بر نخوردم که تغییراتی در نگارش(syntax) دستورات دیده باشم.البته اون جوری که آقای اورمارس می گفت خیلی از کرش ها و باگ های ورژن های قبلی در ورژن 7 برطرف شده.کرک ورژن 7 گیم میکر ، Loader هست و ممکنه کار با اون یکم اعصابتونو خورد کنه !(ولی من اعصابم قویه!)شما می تونید با همون 6 یا 5 کار کنید .
    بنده ی حقیر ناجی نیستم – من حتی تا چند روز قبل نمی دونستم که گیم میکر کامپایلر نداره و به جای اون مفسر داره (که خودش نشونه ی ضعف خیلی بزرگی در منه)من فقط با خوندن E-Book ، هلپ خود برنامه و کتاب خود گیم میکر (که داره تو سایتش تبلیغ می کنه ) یه چیزایی یاد گرفتم و همین الآن هم هنوز تو قسمت 2 بعدی گیم میکر دست و پا می زنم!!!( به قول مشهدی ها غُطّه می خورم!!!).ولی مطمئن باشید تا وقتی 2D تموم بشه منم از تنبلی درمی یام و 3D رو هم شروع می کنم به خوندن. ولی نتیجه ی نهایی کار رو باید از خودتون انتظار داشته باشید نه از آموزش من!

    چون فقط در این تاپیک قراره اسکریپت نویسی رو آموزش بدیم قسمت های قبلی گیم میکر رو فاکتور گرفتم(که البته دوستان دیگه لطف کرده بودن آموزش های کاربری گیم میکر رو گذاشته بودن. دونستن این نکته خالی از لطف نیست که تمام چیز هایی رو که توی قسمت اکشن آبجکت های گیم میکر میبینین رو میشه با اسکریپت نویسی گیم میکر پیاده کرد پس کسانی که هیچی در مورد گیم میکر نمی دونن لطف کنن آموزش های قبلی دوستان رو بخونن تا این جا مشکل براشون پیش نیاد .
    باز هم اگر دوستان فکر می کنن از اولِ اول ِ اول ِ ..........(!) بگم بهتره ، به من بگین تا این پست رو پاک کنم و از صفر شروع کنم.
    البته با شناختی که من از بعضی افراد تاپیک بازی دارم بعید می دونم همچنین چیزی پیش بیاد که هر کدوم در ساخت بازی استاد هستند .
    یکم از کلیات گیم میکر می گم بعد بریم سراغ کد نویسی:

  6. #6
    اگه نباشه جاش خالی می مونه mst_ab's Avatar
    تاريخ عضويت
    Oct 2007
    محل سكونت
    مشهد
    پست ها
    326

    پيش فرض

    بخش اول –قسمت دوم: آشنایی با محیط کار


    این پنجره رو چندین هزار(!) بار دیدید اما آیا دقت کردید جریان مادر و بچه ها دقیقاً این جا برقراره ؟!! (عزیزانی که این موضوع براشون گنگ می زنه پست دوم من را بخوانند!) قسمت های مختلف عکس رو با عدد مشخص کردم.
    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 همین جاست! و حالا حالا ها خیلی این جا کار داریم! فقط یک معرفی جزئی از بخش های این قسمت می کنم.


    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 ، هزاران دلار سرمایه ی مالی فقط برای خرید بعضی برنامه های گرافیکی پیشرفته ، زمان های طولانی و تعداد افراد گروه زیاد نیاز مند است.

    ببخشید بیشتر از کوپن خودم حرف زدم!
    Last edited by mst_ab; 24-01-2008 at 14:26.

  7. #7
    داره خودمونی میشه Max2000's Avatar
    تاريخ عضويت
    Aug 2007
    پست ها
    105

    پيش فرض

    به نام خدا
    ايول ادامه بده

  8. #8
    اگه نباشه جاش خالی می مونه mst_ab's Avatar
    تاريخ عضويت
    Oct 2007
    محل سكونت
    مشهد
    پست ها
    326

    پيش فرض

    از این به بعد هر چی میگم هلپ خود گیم میکر+حرف های خودمه (چه آشی بشه!)
    فقط توجه داشته باشین از این به بعد یکم سخت تر میشه و نیازمند توجه بیشتره .و من از درصد شوخی ها کم می کنم!!. البته هیچ وقت از همه ی چیزایی که میگم استفاده نخواهید کرد ولی یاد گرفتنشون بی فایده نیست.
    فهرست GML که از این به بعد قراره تو بخش دوم اینا رو بگم :
    Last edited by mst_ab; 31-01-2008 at 19:37.

  9. #9
    اگه نباشه جاش خالی می مونه mst_ab's Avatar
    تاريخ عضويت
    Oct 2007
    محل سكونت
    مشهد
    پست ها
    326

    پيش فرض

    کجاش خوبه!!!! نه می تونم ویرایش کنم نه پاکش کنم ! مهدی هم که هیچ وقت آن نیست که پاکش کنه.عجب غلطی کردم . فکر کنم باید دو باره پست تکراری بدم اینجا که کسی نیست به دادم برسه.
    Last edited by mst_ab; 29-03-2008 at 15:40.

  10. #10
    حـــــرفـه ای Moh3en_DDD's Avatar
    تاريخ عضويت
    Jun 2005
    محل سكونت
    1391
    پست ها
    3,761

    پيش فرض

    کجاش خوبه!!!! نه می تونم ویرایش کنم نه پاکش کنم ! مهدی هم که هیچ وقت آن نیست که پاکش کنه.عجب غلطی کردم . فکر کنم باید دو باره پست تکراری بدم اینجا که کسی نیست به دادم برسه.
    ... نه بابا ... تاپیک خیلی عالیه ... اون پست هم زیاد مشکلی نداره ... میشه فهمید ...

    ادامه بده تا مهدی آن شه ...

صفحه 1 از 6 12345 ... آخرآخر

Thread Information

Users Browsing this Thread

هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)

User Tag List

قوانين ايجاد تاپيک در انجمن

  • شما نمی توانید تاپیک ایحاد کنید
  • شما نمی توانید پاسخی ارسال کنید
  • شما نمی توانید فایل پیوست کنید
  • شما نمی توانید پاسخ خود را ویرایش کنید
  •