تعلمنا في المقالات السابقة من سلسلة Pygame التي تشرح طريقة بناء لعبة من الصفر بلغة بايثون3 ووحدة الألعاب Pygame، وكيف نضيف إليها الشخصيات سواء شخصيات الأبطال أو أعداء، ونحركهم بالقفز والركض ورمي المقذوفات مثل الكرات النارية وغيرها، وسنعرض في هذا المقال المتمم للسلسلة طريقة إضافة مؤثرات صوتية تناسب أحداث اللعبة تُشَغَّل في أثناء القتال أو القفز أو جمع الجوائز أو غير ذلك، لكن دعنا في البداية نذكرك بمقالات السلسلة بالترتيب:
- بناء لعبة نرد بسيطة بلغة بايثون.
- بناء لعبة رسومية باستخدام بايثون ووحدة الألعاب PyGame.
- إضافة لاعب إلى اللعبة المطورة باستخدام بايثون و Pygame.
- تحريك شخصية اللعبة باستخدام PyGame.
- إضافة شخصية العدو للعبة.
- إضافة المنصات إلى لعبة بايثون باستخدام الوحدة Pygame
- محاكاة أثر الجاذبية في لعبة بايثون.
- إضافة خاصية القفز والركض إلى لعبة بايثون.
- إضافة الجوائز إلى اللعبة المطورة بلغة بايثون
- تسجيل نتائج اللعبة المطورة بلغة بايثون وعرضها على الشاشة.
- إضافة آليات القذف إلى اللعبة المطورة بلغة بايثون.
- إضافة آليات القذف إلى اللعبة المطورة بلغة بايثون.
- إضافة المؤثرات الصوتية إلى اللعبة المطورة بلغة بايثون ومكتبة Pygame.
توفر المكتبة Pygame طريقةً سهلة لإضافة المؤثرات الصوتية إلى ألعاب الفيديو المطورة بلغة بايثون، وذلك اعتمادًا على وحدة خاصة تسمى mixer module تتيح لك تشغيل صوت واحد أو أكثر حسب طلبك، فيمكنك مثلًا تشغيل موسيقى خلفية background music بالتزامن مع صوت بطل اللعبة وهو يقاتل أو يقفز أو يجمع الجوائز.
لن يتضمن هذا المقال تعديلات مباشرةً على الشيفرة البرمجية للعبة التي عملنا عليها خلال السلسلة (كما في فعلنا المقالات السابقة) لكننا سنقدم لك أمثلة للتعليمات المتعلقة بالوحدة mixer وسنشرح لك بالتفصيل كيفية الاستفادة منها ودمجها في لعبتك بخطوات متسلسلة.
تشغيل الوحدة mixer
اكتب في البداية التعليمة الخاصة بتشغيل الوحدة mixer
في قسم الإعدادات setup
ضمن شيفرة اللعبة، طبعًا يمكنك جمعها مع في كتلة واحدة مع التعليمات المشابهة لها مثل تعليمة تشغيل pygame
وتشغيل pygame.font
لتصبح كما يلي:
pygame.init() pygame.font.init() pygame.mixer.init() # أضف هذا السطر
ملاحظة: يمكنك الحصول على شيفرة اللعبة بشكلها النهائي من المقال الثاني عشر من السلسلة إضافة آليات القذف إلى اللعبة المطورة بلغة بايثون.
الحصول على الملفات الصوتية اللعبة
خطوتك التالية هي تحديد الأصوات التي تود استخدامها في اللعبة وتوفيرها محليًّا على حاسوبك، فاستخدام الأصوات في اللعبة المطورة بلغة بايثون يتطلب وجودها كملفات على الحاسوب المحلي تمامًا مثل الخطوط والرسوم.
إذًا بعد تأمين ملفات الصوت عليك وضعها في حزمة واحدة مع ملفات اللعبة حتى يحصل عليها كل من يلعب بلعبتك.
لنبدأ بإنشاء مجلد خاص لحفظ ملفات الصوت ضمن المجلد الرئيسي للعبة إلى جانب مجلدي الصور والخطوط، ولنسميه sound
كما يلي:
s = 'sound'
يتوفر العديد من الملفات الصوتية على الإنترنت لكن قد لا يسمح لك باستخدامها جميعًا بسبب حقوق الملكية، لذا ابحث عن الملفات الصوتية مفتوحة المصدر أو المنشورة تحت رخصة المشاع الإبداعي Creative Commons واستخدمها في لعبتك، وهذه بعض المصادر التي تتيح لك تحميل ملفات الصوت مجانًا وبطريقة قانونية:
- يحتوي Freesound على ملفات لمختلف أنواع المؤثرات الصوتية.
- يستضيف موقع Incompetech مجموعة واسعة من الموسيقى المناسبة لتكون موسيقى خلفية للألعاب.
- يوفر Open Game Art ملفاتٍ متنوعة من المؤثرات الصوتية والموسيقى.
لكن احرص دائمًا على قراءة شروط الاستخدام قبل تحميل أي ملف صوتي مجاني واعتماده في لعبتك، إذ يشترط بعض المؤلفون الموسيقيون ومصممو الصوت أن تُنسب الملفات الصوتية إليهم ويذكر أنهم أصحاب الفضل في إنشائها عندما يستخدمها الآخرون مجانًا، وبكل الأحوال يُعدّ ذكر اسم صاحب الملف الصوتي تصرفًا جيدًا وأخلاقيًا لمطوري الألعاب، فهم في نهاية الأمر قد تعبوا على ملفاتهم الصوتية بالطريقة نفسها التي تعبت فيها لتطوير لعبة أو تطبيقك.
فأين يُذكر اسم صاحب الملف الصوتي إذًا؟ يُنشأ عادةً ملفٌ نصيٌّ خاص في مجلد اللعبة الرئيسي يسمى CREDIT
وتُكتب فيه الملفات الصوتية المستخدمة في اللعبة مع مصادرها.
قد يرغب البعض بتأليف مؤثراتهم الصوتية الخاصة، فإذا كنت منهم يمكنك استخدام أدوات Linux Multimedia Studio، أو LMMS ، فهو برنامج مجاني ومفتوح المصدر يساعد على لإنتاج وتحرير الموسيقى وتوليد التأثيرات الصوتية، كما أنه سهل الاستخدام ومتوافق مع معظم المنصات الأساسية، ويوفر لك العديد من الأصوات لتبدأ منها، فضلًا عن أنه يسمح لك بتصدير الملفات الصوتية بتنسيق Ogg Vorbis مفتوح المصدر الذي يسمى اختصارًا OGG.
يمكنك معرفة المزيد عن المشاريع والبرمجيات مفتوحة المصدر بمشاهدة هذا الفيديو:
إضافة الملفات الصوتية إلى Pygame
الآن بعد أن وجدت المؤثرات الصوتية المناسبة للعبتك ستُحَمِّلها غالبًا بصيغة ملفات مضغوطة tar
أو zip
لذا أول ما سنفعله هو فك ضغطها، ونقل الملفات الصوتية الناتجة إلى المجلد sound
الموجود ضمن مجلد اللعبة الرئيسي.
انظر بعدها إلى أسماء الملفات الصوتية فإذا وجدتها معقدة أو تتضمن العديد من المحارف الخاصة، أَعِدّْ تسميتها واختر لها أسماءً بسيطة يمكنك استخدامها بسهولة ضمن الشيفرة البرمجية.
تعتمد معظم ألعاب الفيديو ملفاتٍ صوتية بصيغة OGG
لأنها تجمع بين الجودة العالية وصِغَر حجم الملف، فإذا كانت الملفات الصوتية التي اخترتها للعبتك بصيغة MP3
أو WAVE
أو FLAC
أو غيرها، احرص على تحويلها إلى صيغة OGG
باستعمال أدوات مثل fre:ac و Miro لتضمن توافقيةً أعلى وحجمًا أصغر عند تحميل اللعبة.
لنفترض على سبيل المثال أن الملف الصوتي الذي حَمَّلته يدعى ouch.ogg
.
سننشئ متغيرًا خاصًا لتمثيله في قسم الإعدادات setup
ضمن شيفرة اللعبة، ليكن مثلًا المتغير ouch
كما يلي:
ouch = pygame.mixer.Sound(os.path.join(s, 'ouch.ogg'))
تشغيل الأصوات ضمن اللعبة
الآن كل ما عليك فعله لتشغيل الصوت ضمن اللعبة هو استدعاء المتغير السابق عندما تحتاجه، فعلى سبيل المثال إذا رغبت بتشغيل الصوت OUCH
عندما يصطدم بطلك بأحد الأعداء فستكتب الحلقة التالية:
for enemy in enemy_hit_list: pygame.mixer.Sound.play(ouch) score -= 1
وبالطريقة نفسها يمكنك إنشاء مؤثرات صوتية لمختلف أنواع الأحداث في اللعبة، مثل: القفز، وجمع الجوائز، ورمي المقذوفات، والاصطدام بالأشياء… إلخ.
إضافة موسيقى خلفية للعبة
تساعدك الدالة music
(إحدى دوال الوحدة mixer
في Pygame
) على تشغيل موسيقى أو مؤثرات جوية مثل صوت هواء أو غيره في خلفية background اللعبة، وذلك بخطوتين: أولًا تحميل الملف الصوتي بكتابة الأمر التالي في قسم الإعدادات setup
من شيفرة اللعبة:
music = pygame.mixer.music.load(os.path.join(s, 'music.ogg'))
ثم تشغيل الدالة music
كما يلي:
pygame.mixer.music.play(-1)
تعني القيمة 1-
أن الدالة ستعمل إلى ما لا نهاية من دون توقف وهذه سمة الموسيقى الخلفية، لكن يمكنك استخدام أي عدد آخر بدءًا من 0
وما فوق لتحديد عدد المرات التي ستعمل فيها الدالة music
قبل أن تتوقف.
طوّر اللعبة ولا تتوقف هنا
لا تتوقف عند ما تعلمناه في هذه السلسلة عن Pygame جرب إضافة المزيد من الأصوات والمراحل والمؤثرات الحركية إلى لعبتك، تعلَّم المزيد عنها فهي تضفي النكهة على لعبتك وتساهم في جعلها مفضلة لدى المستخدمين.
ترجمة -وبتصرف- لمقال Add sound to your Python game لصاحبه Seth Kenlon.
أفضل التعليقات
لا توجد أية تعليقات بعد
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.