ساخت فریم عکس

۱۳۹۵/۱۰/۰۹
    |     1131 بازدید
    |     41 دانلود شده
    |     tfh1368
ساخت فریم عکس
در این آموزش قصد داریم نحوه ساخت قاب(فریم) برای اسپرایت در گیم میکر را آموزش دهیم

دانش پیش زمینه مورد نیاز :

آشنایی با سورفیس ها

آشنایی با blend در گیم میکر

ابتدا به موارد استفاده این فریم نگاهی می اندازیم و سپس به آموزش آن میپردازیم ، شاید برای شما پیش امده که بخواهید قسمتی از یک اسپرایت را رسم کنید ولی استفاده از draw_sprite_part امکان پذیر نباشد زیر شما شکل خاصی از اسپرایت را نیاز به رسم دارید(در هنگام اجرای بازی) به مثال زیر دقت کنید :




صویر ۱ چیزی است که ما در بخش اسپرایت های گیم میکر داریم و باید در بازی به شکل شماره ۲ نمایش داده شود در نگاه اول به نظر راحت ترین راه ویرایش آن از قبل و وارد کردن آن به گیم میکر است اما هنگامی که باید از این تصویر در چندین مکان و در چندین حالت مختلف استفاده شود استفاده از فریم (قاب) بهترین راه است

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

حال که به مورد استفاده آن پی بردیم باید دست به کار شویم

ما قصد داریم صورت شخص زیر را به صورت دایره رسم کنیم



برای این کار باید یک دایره سیاه رنگ و بدون پس زمینه را رسم کنیم در نظر داشته باشید که ابعاد دایره مهم هستند بنابرین دایره ما به شکل زیر خواهد بود



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


surf_mainspr=surface_create(room_width,room_height)
surf_tempSurface=surface_create(room_width,room_height)


از surf_mainspr برای رسم اسپرایت استفاده کرده ایم و از surf_tempSurface  برای رسم قاب اسپرایت

به ایونت draw میرویم و  بخش پایانی کار را به انجام میرسانیم:


if!(surface_exists(surf_tempSurface)){surf_tempSurface=surface_create(room_width,room_height)}
if!(surface_exists(surf_mainspr)){surf_mainspr=surface_create(room_width,room_height)}
surface_set_target(surf_tempSurface)
draw_clear_alpha(c_white,0);
draw_set_blend_mode_ext(bm_one, bm_one);
 
//draw frame
draw_sprite(spr_frame,0,500,150)
surface_reset_target();
draw_set_blend_mode(bm_normal);
 
//draw spr
surface_set_target(surf_mainspr);
draw_sprite(spr_sprite,0,500,150)
draw_set_blend_mode_ext(bm_zero, bm_src_color);
draw_surface(surf_tempSurface,0,0);
surface_reset_target();
draw_set_blend_mode(bm_normal);
 
 
draw_surface(surf_mainspr,0,0); 


توضیح کد :

در دو خط ابتدایی وجود سورفیس های مورد نیاز را بررسی کردیم و در ادامه ابتدا سورفیس قاب برای تارگت تنظیم شده و در آن از draw_set_blend_mode_ext(bm_one, bm_one)

برای خالی نشان دادن قاب استفاده شده سپس اسپرایت قاب رسم می شود و در اینجا کار سورفیس قاب به پایان میرسید از draw_set_blend_mode(bm_normal);

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

draw_set_blend_mode_ext(bm_zero, bm_src_color);

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

نتیجه نهایی:




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

با تغییر اسپرایت قاب میتوانید هر بخش از اسپرایت مورد نظر را رسم کنید حتی میتوانید با دادن خاصیت angle به قاب یک فریم متحرک ایجاد کنید

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





نظرات

ارسال نظر یا پیشنهاد