درس ۱۳ : قسمت چهارم

Effect :

اخرین قسمت این بحث در مورد effect ها است.effect ها در SDL_Mixer به دو قسمت تقسیم می شوند یک قسمت effect های ایست که از قبل موجود است مثل paning(تنظیم صوت بین دو کانال استریو) و دیگر effect های 3 بعدی و قسمت دوم effect هایی هستند که به وسیله خود شما درست می شوند.

قسمت مهم کار با effect ها ثبت effect ها بر روی کانال ها است وتا وقتی که از حالت register در نیامده باشند فعال هستند.

 

Effect های موجود :

Effect های موجود شامل Panning (تنظیم صوت بین دو کانال استریو)distance یا همان فاصله صدایی است که در حال پخش است.

و تعیین مکانی که صدا از انجا می اید.

و عوض کردن کانال های صدا در حالت stereo است.

 

برای استفاده از panning شما باید از تابع Mix_SetPanning استفاده کنید.

int Mix_SetPanning(int channel, Uint8 left, Uint8 right);

این تابع شماره کانال مورد نظر را می گیرد و همچنین مقدار volume باند های چپ و راست را می توان با left و right تعیین کرد که volume می تواند عددی از بین 0 تا 255 باشد در صورت موفقیت مقدار غیر 0 بر میگرداند.برای Unregister کردن این effect باید هم left و هم right را به 255 تنظیم کرد.

 

برای تنظیم فاصله هم باید از تابع Mix_SetDistance استفاده کرد.

int Mix_SetDistance(int channel, Uint8 distance);

اول شماره کانال را می گیرد و سپس یک عدد بین 0 تا 255 به عنوان فاصله دریافت می کند در صورت وارد کردن 0 effect فاصله Unregister می شود.

در صورت درست اجرا شدن مقدار غیر صفز بر می گرداند.

 

همچنین می توانید به وسیله تابع Mix_SetPosition می توانید یک شبیه سازی سه بعدی انجام دهید.

int Mix_SetPosition(int channel, Sint16 angle, Uint8 distance);

این تابع اول شماره کانال را می گیرد سپس زاویه مورد نظر وسپس فاصله را به عنوان پارامتر سوم می گیرد.angle یک عدد از صفر تا 360 می باشد.

شکل زیر توضیح کاملی بر این تابع می باشد.

 

 aloo

وسر اخر نوبت تابع Mix_SetReverseStereo می شود که کارش معکوس کردن جای باند ها است.

int Mix_SetReverseStereo(int channel, int flip);

در صورت اینکه flip غیر صفر باشد effect فعال می شود.

همچنین شما می توانید با توابعی مثل :

int Mix RegisterEffect(int chan, Mix_EffectFunc_t f, Mix_EffectDone_t d,

void *arg)

خود برای خود effect بسازید چون همین مقدار توضیح برای ساخت بازی کافی است من روی این توابع توضیح خاصی نمی دهم.می توانید به مستندات SDL_Mixer رجوع کنید.

 

پایان درس 13

 

منابع :

SDL_Mixer Documents.1

Focus on SDL.2

نظرات 1 + ارسال نظر
ساسان چهارشنبه 25 مرداد‌ماه سال 1385 ساعت 08:44 ب.ظ

ایمان جان روی مسنجر برات پیام گذاشتم. امشب باید حتما باهات صحبت کنم.حوالی ساعت ۱۰ شب اگه تونستی آنلاین باشی.

برای نمایش آواتار خود در این وبلاگ در سایت Gravatar.com ثبت نام کنید. (راهنما)
ایمیل شما بعد از ثبت نمایش داده نخواهد شد