سؤال

لقد قمت بتجربة pulpcore ، في محاولة لخلقها لعبة دفاع البرج الخاصة بي (غير قابل للعب حتى الآن) ، وأنا أستمتع بها كثيرًا واجهت مشكلة لا يمكنني اكتشافها تمامًا. لقد قمت بتمديد PulpCore مع شيء Jorbis للسماح بتشغيل ملفات OGG. يعمل بشكل جيد. ومع ذلك ، يبدو أن PulpCore تواجه مشكلة في حلقة الصوت أثناء تحريك مستوى الصوت. لقد جربت هذا مع ملف WAV أيضًا ، للتأكد من أنه ليس Jorbis هو الذي يكسره. الرمز مثل هذا:

Sound bgMusic = Sound.load("music/music.ogg");
Playback musicPlayback;
...

musicVolume = new Fixed(0.75);
musicPlayback = bgMusic.loop(musicVolume);
//TODO figure out why it's NOT looping when volume is animated
//  musicVolume.animate(0, musicVolume.get(), FADE_IN_TIME);

هذا الرمز ، طالما تم التعليق على السطر الأخير ، يلعب music.ogg مرارًا وتكرارًا في حلقة لا نهاية لها (والتي يمكنني التوقف عن طريق استدعاء كائن التشغيل الذي تم إرجاعه من الحلقة (). ومع ذلك ، أود الموسيقى لتتلاشى بسلاسة ، لذلك باتباع نصيحة مستندات API PulpCore ، أضفت السطر الأخير الذي سيخلق التلاشي لكن الموسيقى ستعمل فقط مرة واحدة ثم أتوقف. أتساءل لماذا هذا؟ وثائق:

playback pulpcore.sound.sound.loop (مستوى ثابت)

حلقات هذا المقطع الصوتي مع مستوى الصوت المحدد (0.0 إلى 1.0). قد يكون للمستوى الرسوم المتحركة الخاصية المرفقة.

المعلمات: المستوى

إرجاع: كائن تشغيل لهذا التشغيل الفريد من نوعه (يمكن أن يكون للعديد من كائنات التشغيل المتزامنة) أو NULL إذا تعذر تشغيل الصوت.

إذن ماذا يمكن أن تكون المشكلة؟ أكرر ، مع السطر الأخير ، يتلاشى الصوت ولكنه لا يتلاشى ، بدونه حلقه ولكنه يبدأ بمستوى وحدة التخزين 0.75 المحددة. لماذا لا يمكنني تحريك حجم تشغيل الموسيقى المحاطية؟ ما الخطأ الذي افعله؟ أي شخص لديه أي خبرة مع PulpCore وقد صادف هذه المشكلة؟ يمكن لأي شخص تنزيل PulpCore ومحاولة حلقة الموسيقى التي تتلاشى (خارج)؟

ملاحظة: أحتاج إلى الاحتفاظ بالإشارة إلى كائن التشغيل الذي تم إرجاعه حتى أتمكن من قتل الموسيقى لاحقًا.

هل كانت مفيدة؟

المحلول 3

أخيرًا ، تمكنت من الحصول على شرح وتوضيح عمل بسيط لهذه المشكلة من مؤلف Pulp Core. حتى هنا هو عليه:

إنه علة اللب. عندما يكون حجم الإخراج صفرًا ، يتوقف مشغل الصوت عن حلق الصوت.

للعمل من حوله ، تحريك من قيمة ليست صفر ، مثل هذا:

musicVolume.animate(0.0001, 1, FADE_IN_TIME); 

ارتباط بهذا على مجموعات Google PulpCore

نصائح أخرى

إذا animate الطريقة التي تحدد الخيار فقط ، يمكن أن تعمل بشكل غير متوقع - حاول تبديل هذا السطر باستخدام الحلقة نفسها ، لذلك تنطبق الرسوم المتحركة أولاً.

هل يمكنك تحريك المجلد على التشغيل الذي لا ينسجم ، ثم في نهاية هذا التشغيل ، بدء الحلقة على المستوى الثابت؟

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top