PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : ساخت بازی های دوبعدی با نرم افزار Game Maker



Shadow Of Darkness
May 16th, 2010, 05:26 PM
سلام به اونهایی که کی می خوان ایران رو در صنعت بازی سازی به پیشرفت برسونن. نرم افزار Game Maker نرم افزاری هست که می تونین با استفاده از اون یک بازی دوبعدی ساده و جذاب رو بسازید.
من در اینجا لینک نرم افزار و فایلهای آموزشی Game Maker رو گذاشتم که می تونید اونها رو دانلود کنید:
دانلود نرم افزار Game Maker:
http://www.yoyogames.com/gamemaker/download
دانلود فایلهای آموزشی Game Maker:
http://www.yoyogames.com/make/tutorials

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



به نام پروردگار عالم





برایی ساخت این بازی یک مقدمه کوچولو جایز است !
من با این آموزش قصد دارم بگم که برای ساخت یک بازی زیبا حتمآ لازم نیست که یک برنامه نویس یا یک متخصص باشید بلکه باید یک خلق خوب باشید. اگر مایل باشید من یک تو ضیح بدم و بعد بریم سر اصل موضوع. در این جا ما می خواهیم یک بازی بسازیم که در آن شخسیت مورد نظر به جلو برود به عقب حرکت کند با فشار دادن بالا پرش کند و وقتی به شئ موردنظر برخورد کرد بمیرد و از همه مهم تر این که مرحله رد کند و به مرحله بعدی برسد .


قسمت اول : اسپرایت کاراکتر
براي شروع گار محيط Game Maker را اجرا كرده و روي گزينه اسپرايت كه بصورت شكلك قرمز رنگ دهان باز كليك كنيد.سپس در محیط باز شده یک عکس، Load كنيد. براي شخسیت بازی ) بهتر است چند عکس داشته باشیم که حالت های مختلف رو نشون بده منظورم همون حالت تیر زدن و حرکت . ایستادن و مردن است ( نمونه خیلی سادش اینه که ما با یک ربات كه با برنامه Paint ساخته شده، شرع کنیم که نیازی به عکس متحرک ) برای نشان دادن حالت راه رفتن آدم به عکس متحرک نیاز است) نداشته باشيم عكس مورد نظر را انتخاب كرده و Load مي كنيم و در نهايت كليد Ok را مي زنيم.


برای نمونه یک همچین چیزی
با Paint بكشيد تا اين شكل
به كاراكتر اصلي ما اضافه شود.
برای این که کاراکتر بتواند روی یک سطح بایستد باید بعد از Load كردن عكس بايد روي گزينه smooth edge
تيك بزنيد و تيك گزينه pricis collision cheking را برداید.




اگر تصوير را Load كرديد و يادتون رفت تيكهايي رو كه گفتم بذاريد با دابل كليك روي اسپرايت از اين قسمت كه در تصوير زير گذاشتم مي تونيد اونها رو باز كرده و تغييرات رو اعمال كنيد.


قسمت دوم : اسپرایت زمین
دوباره روی شکل صورت دهن قرمز باز کلیک می کنیم . بعد یک شکل که ترجیهآ مسطتیل باشه رو Load
می کنیم. همانند اوردن آدم آهنی که با برنامه paint نقاشی شده بود را Load مي كنيم. سپس تيك دو گزينه smooth edge و pricis collision cheking براي زمين بايد برداشت.

یک نکته : بهتر است سایز اسپرایت زمین از این که در تصویر میبینید بزرگتر نشود .
اسپرایت دشمن را هم مانند بالا Load مي كنيم( روي شكل دهن باز قرمز رنگ كليك و . . . ) اما دست به تیک ها نمی زنیم . این اسپرایت می خواهد، دشمن
متحرک شود برای نمونه این شکل:

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

OBJECT چیست : مجموعه دستوراتی که به یک اسپرایت نسبت داده می شه.

برای ساخت ابجکت باید روی این دایره آبی رنگ در منوی Game Maker کلیک کنید.





قسمت دوم: ساخت Object اول

بعد از کلیک روی دایره آبی این کادر باز میشود که در آموزشات موجود در سایت تبیان به صورت ناقص توضیحی داده شده این پنجره به شکل زیر است .
اسپرایت را از جایی که در بالا با علمت سیاه رنگ مشخص کردم بر میداریم ) اسپرایت آدم آهني را با نام Sprite0 مشخص مي كنيم).

روي دكمه Add Event كليك كنيد در منوي باز شده روي دكمه Key Press كليك كنيد و <Left> را بزنيد.
باز هم روي دكمه Add Event كليك كنيد در منوي باز شده روي دكمه Key Press كليك كنيد و اين بار <Right> را بزنيد.
باز هم روي دكمه Add Event كليك كنيد در منوي باز شده روي دكمه Key Press كليك كنيد و اين بار <Up> را بزنيد.

این مجموعه دستوراتی است که وقتی کلید را فشار داده ایم شروع به عمل میکنن اما ما می خواهیم که موقعی که کلید را رها می کنیم اسپرایت ایست کند . یعنی می خواهیم برای نمونه با فشار دادن کلید جهت چپ اسپرایت به چپ حرکت کند و با رها کردن کلید چپ اسپرایت ایست کند؛ پس این بار از ایونت key release
استفاده می شود.
روي دكمه Add Event كليك كنيد در منوي باز شده روي دكمه key release كليك كنيد و <Left> را بزنيد.
دوباره روي دكمه Add Event كليك كنيد در منوي باز شده روي دكمه key release كليك كنيد و اين بار <Right> را بزنيد.
دوباره روي دكمه Add Event كليك كنيد در منوي باز شده روي دكمه key release كليك كنيد و اين بار <Up> را بزنيد.
تا لیست Event ها به شکل زیر در آید:




حال نوبت به دستور دادن به ایونت ها می شود )به این کار میگن اکشن دادن (:

ایونت press <left> را با یک کلیک به رنگ آبی در می آوریم )های لیت می کنیم (.بعد را در صفحه سفید actions مي كشيم (Drag كردن) و رها می کنیم . . . کادر محاوره ایی باز میشود که در آن باید با نوشتن عدد در در قسمت hor.Speed سرعت حرکت افقی را تعیین کنیم؛ مقدار اين سرعت بايد منفي باشد كه من عدد 3- رو پيشنهاد مي كنم؛ چون در جهت left یعنی به جهت چپ حرکت خواهد كرد.

نکته : اگر گزینه ی relative فعال شود با نگه داشتن کلید جهت نمای چپ سرعت ، ثانیه به ثانیه افزایش پیدا میکند( يعني اگر مي خواهيد 5 قدم به عقب برگرديد بايد كليد جهت نما را 5 بار كليك كنيد).

ایونت press <Right> را با یک کلیک highlightمی کنیم می بینیم که منوی اکشن خالی ما می خواهد اسپرات آدم آهنی را به سمت راست ببرد پس را می کشیم و در کادر سفید اکشن رها می کنیم این بار سرعت را 3+ قرار مي دهيم و دكمه Ok را كليك مي كنيم.

روي ایونت release <left> کلیک می کنیم می بینیم که منوی اکشن خالي است؛ را در محيط اكشن، Drag و رها مي كنيم و سرعت را صفر در نظر مي گيريم، چون وقتی دست رو از کیبورد برداشتیم اسپرایت از حرکت بایستد و روی دکمه OK كليك مي كنيم.

روي ایونت release < Right > کلیک می کنیم می بینیم که منوی اکشن خالي است؛ را در محيط اكشن، Drag و رها مي كنيم و سرعت را صفر در نظر مي گيريم، چون وقتی دست رو از کیبورد برداشتیم اسپرایت از حرکت بایستد و روی دکمه OK كليك مي كنيم.













حالا آبجکت دوم باید ساخته بشه :
همانند روش قبل به اسپرایت می آوریم اما اسپرایت زمین نياز به هيچ Object و Eventاي ندارد و فقط بايد تيك solid را گذاشت.






حالا روی دکمه OK کلیک می کنیم و آبجکت قبل را اجرا می کنیم. (الان توضيح ميدم:در پاراگراف پايين توضيح داده مي شود).





با كمك روش بالا Object0 را اجرا مي كنيم.


می بینیم که پرس آپ و ریلس آپ ناپدید شدند؛ این به خاطر نبودن دستور درونشون بود.
یک ایونت جدید با زدن دکمه Add Event و انتخاب ایونت و انتخاب آبجکت زمین می سازیم . بعد به آن اکشن را می دهیم تا بین ادمک و زمین فاصله ای ايجاد شود؛ در قسمت direction باید همان direction تايپ شود و در قسمت maximum باید حداکثر فاصله بین زمین و آدم مشخص شود عدد 12 پیشنهاد من است .حال روی دکمه Ok كليك مي کنیم.
حالا در زیر این اکشن یک اکشن دیگر می گذاریم که با شکل شناس است این اکشن سرعت عمودی را مشخص می کند که باید صفر باشد. در آخر روي دكمه Ok كليك مي كنيم.











معنی پاراگراف بالا چیست ) خیلی مهم (
در پاراگراف بالا از ایونت استفاده شد. کار این ایونت این است که هرگاه اسپرایت 0 یعنی آدم آهنی با زمین بر خورد کرد دستورات روبه رو اجرا شود.


مهم ترین و آسان ترین Event
روی دکمه Add Event کلیک کنید و يك بسازيد بعد روي نوشته Step دوباره کلیک کنید این ایونت یعنی اکشن های روبه روی خود را قدم به قدم بازی اجرا می کند. ما برای این ایونت اکشن gravity یعنی جاذبه در نظر می گیریم که در قدم به قدم بازی نیروی جاذبه داشته باشیم.
زاویه رو 270 درجه میکنیم که رو به پایین
باشد، شدت جاذبه هم روي 1می گذاریم
و بعد روی دکمه Ok کلیک می کنیم .



















Event آخر ، پریدن !!!
بی مقدمه از منوی add event شكل رو انتخاب می کنیم و بعد هم نوشته <Up> را انتخاب می کنیم.
اکشن از سر منوی انتخاب و آنرا قسمت اكشن Drag كنيد.


به این مدل اکشن های 6 ضلعی شرط می گن ٫ اکشن شرط می کنه که اگر چپ یا راست یا بالا یا پایین اسپرایت ما خالی باشد دستور زیر را انجام دهد ) اکشنی که زیرش قرار می گیره (.
اما ما می خواهیم اگر زیر اسپرایت ما پر بود دستور زیر انجام شود ) دستور زیر همان پرش است ) و اگر ما روی زمین بودیم پرش کند برای همین تیک NOT را می زنیم که کار دستور را برعکس می کند .
برای این که دستور به زیر اسپرایت نگاه کند باید تیک relative را بگذاريم و Y=1 قرار دهيم.









حالا روی OK کلیک می کنیم و میریم سراغ اکشنی که قراره زیر قرار بگیرد.
یعنی اکشن که باید عدد درون آن منفی باشد تا رو به بالا پرش كند. من عدد -15 رو پیشنهاد می کنم. پنجره مربوط به اکشن سرعت عمودی را هم با زدن دکمه Ok مي بنديم.








٫٫٫ یک نما از کار ٫٫٫




یک خبر خوب

شما دیگر نیازی به دادن اکشن ها ندارید . تمهايي مانده که یک زمین زیبا برای بازی بسازید البته با استفاده از آبجکت هایی که ساخته اید !!!


زمین بازی (ROOM) ساخت

برای ساخت اتاق بازی ما باید روی دکمه Room در صفحه اصلی Game Maker کلیک کنیم در عکس زیر با فلش قرمز مشخص شده .





بدون مقدمه میریم سراغ سر صفحه Object و روی کادر سفید رنگ کلیک می کنیم و آبجکت 0 یعنی آدم آهنی رو انتخاب می کنیم و یه جایی اون بالا های صفحه مشبک کلیک می کنیم تا آدم آهنی اونجا ظاهر شود بعد آبجکت زمین را انتخاب می کنیم. با نگه داشتن کلید shift روي کیبورد و نگه داشتن کلیک ماوس روی جایی که می خواهیم زمین باشه، میشه یک خط کشید .
به شکل زیر نگاه کنید .




همان طور که در شکل بالا دیدم ما یک زمین به این صورت ساختیم .پس روی دکمه تیک سبز
رنگ که در بالی پنجره قرار دارد کلیک می کنیم .


حال نوبت دیدن بازیه !
برای دیدن بازی روی دکمه سبز رنگ كه بصورت Play است کلیک میکنیم و بازیی که ساختیم را اجرا می کنیم.





بازیه خوبی شده ولی صفحه اش خیلی کوچیک شده ما می خواهیم صفحه دنبال آدم آهنی حرکت کنه نه این که یک مربع ساده باشه که وقتی ازش خارج بشی آدم آهنی رو نشه دید .ما برای اینکه دوربین دنبال آدم آهنی حرکت کنه یک راه داریم که جلوتر بهتون آموزش ميدم.






تغیر صفحه خاکستری پشت بازی کن به عکس دلخواه:
برای این کار باید از صفحه اصلی گیم میکر یک بک گراند یا تصویر زمیمه باز کنیم (در عکس زیر محل دکمه Backgrounds مشخص است (.





بعد در صفحه باز شده، عکس مورد نظر را Load می کنیم و کلید OK را می زنیم. حالا به سراغ اتاقي (Room) که قبل ساختیم می رویم )در صفحه قبل تو ضیح داده شده (و مطابق دستورات عکس پایین تیک شماره 1 را بر می داریم و از شماره 2 هم تصویر پس زمينه بازي را انتخاب می کنیم .






نکته : با گذاشتن تیک stretch می توانیم عکس را به اندازه Room درآوريم.

اینم یه عکس بدون گذاشتن تیک stretch.









ساختن دشمن متحرک
برای این کار باید یک آبجکت مثل آدم آهنی بسازیم ولی اين بار با sprite، دشمن بسازیم و اکشن زیر را به او بدهیم.





به این صورت که از Add Event ایوت Create را انتخاب می کنید و اکشن بالا را درونش قرار می دهید. مثل بالا سرعت و جهت را مشخص می کنید .حالا Ok را مي زنيم و يك آبجكت جديد ايجاد مي كنيم. این آبجکت باید تیک soild (ثابت) را داشته باشد و تيك Visible (نامرئي) را برداريم و اسپرایتی که باز می کنیم همان اسپرایت مستطیل ساده باشد .از منو Object اسپرایت دشمن را انتخاب می کنیم .
آبجکت را با زدن OK می بندیم. دوباره از منو ابجکت دشمن را باز می کنيم اکشن ها رو مانند عکس بهش اضافه می کنیم.از منوی Events باید ایونت برخورد استفاده شود و آبجکت مستطیل انتخاب می شود. اکشن هم که در عکس مشخصه:





حال می رویم سراغ اتاقي (Room) که ساخته بودیم و آبجکت بالا را ok می کنیم. در Room اول آبجکت دشمن را اضافه می کنیم بعد آبجکت مستطیل را با فاصله زیاد در سمت راست و چپ دشمن قرار می دهیم؛ مانند شکل زیر :




اگر بازی را نگاه کنیم می بینیم که دشمن متحرک در مقابل ماست که مدام بین دو نقطه تحرک دارد.

چی کار کنیم که هنگام بر خورد با دشمن بمیریم و بازی از اول تکرار شه:
کار زیاد سختی نیست تنها باید در آبجکت آدم آهنی یک Event از نوع برخورد بسازیم و آبجکت دشمن را انتخواب کنیم وبه آن اکشن Restart Room را از سر منوی Mine1 بدهيم مانند شكل زير :




چگونه مرحله بسازيم

اینم کار ساده اي هستش كه می تونید در آخر Room یک ابجکت بسازید که هنگام برخورد با آدم آهنی با اکشن go to next room از سر صفحه mine 1 به مرحله بعد بروید البته باید مرحله بعد را ساخته باشد( با ساختن يك Room جديد ).

حرکت دوربین به دنبال آبجکت
برای حرکت دوربین از روش زیر، اتاقي(Room) را که ساخته اید باز کنید )زمین بازی (.






براي حركت دوربين طبق عکس زیر پیش بروید:





من براي سايز صفحه W: 300 و H: 300 رو در نظر مي گيريم. دقت داشته باشيد هر دو كادر بايد برابر باشد.
حال آبجکت آدم آهنی رو انتخاب کنید تا دوربین بدنبال آدم آهنی حرکت کند. Hsp(افقي) و Vsp(عمودي) را برابر 100 يا بيشتر قرار مي دهيم. این اعداد تعیین می کنند که دوربین از کجای صفحه بدنبال ابجکت بره؛ بهتره بازیی که ساخته ایم را نگاه کنیم زیرا برای درک موضوع های بالا بهترین راه همين كاره.

!Hiss
May 16th, 2010, 05:40 PM
ممنون ولي انگليسيش به چه دردي مي خوره

Shadow Of Darkness
May 16th, 2010, 05:58 PM
سلام شرمنده یه لحظه به مشکل برخوردم

Shadow Of Darkness
May 16th, 2010, 06:21 PM
اگه تونستم خودم ترجمه می کنم و روی پست می ذارم.
شما نمیدونی چه جوری میشه یک فایل PDF و یا یک نرم افزار رو روی پست گذاشت؟
من روی این مسئله مشکل دارم. اگه میدونی بهم بگو آخه من تقریبا تازه کارم.

!Hiss
May 16th, 2010, 06:29 PM
اگه تونستم خودم ترجمه می کنم و روی پست می ذارم.
شما نمیدونی چه جوری میشه یک فایل PDF و یا یک نرم افزار رو روی پست گذاشت؟
من روی این مسئله مشکل دارم. اگه میدونی بهم بگو آخه من تقریبا تازه کارم.
متاسفانه خير