iPhone - بدء مشهد cocos2d من وحدة التحكم في العرض، والإغلاق من داخل المشهد

StackOverflow https://stackoverflow.com/questions/5031455

  •  14-11-2019
  •  | 
  •  

سؤال

كيف أقوم بهذا العمل؟

في أحد UIViews (ملف nib) لدي ImageView وزر يبدأ مشهد Cocos2d بملء الشاشة.من داخل هذا المشهد أريد إغلاقه والعودة إلى UIView، حتى يتمكن المستخدم لاحقًا افتح المشهد مرة أخرى ولكن من صورة مختلفة في ImageView (وبمحتوى مختلف في المشهد).

ومع ذلك، بعد المرة الأولى التي أقوم فيها "بإغلاق" المشهد، يتفاعل التطبيق بأكمله بشكل أبطأ بكثير مع جميع أحداث اللمس.إنه يعمل بسرعة طالما أن المشهد قيد التشغيل، ولكن عند إغلاقه، ينخفض ​​الأداء.

كيف يمكنني إغلاق المشهد بشكل صحيح حتى أتمكن من إعادة تشغيله مرة أخرى؟لقد تصفحت الكثير من نماذج التعليمات البرمجية وفي كل مكان فقط replaceWithScene:newScene.

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

المحلول

تؤدي إضافة UIView إلى viewController الذي يضم طبقة openGL قيد التشغيل إلى إبطاء التطبيق، كما يمكن لأي شخص حاول دمج UIScrollView في لعبة Cocos2D أن يخبرك بذلك.أنت بذلك تغلق المشهد، ولكن من المحتمل ألا توقف CCDirector، الذي يقوم الآن بتشغيل برنامج الجدولة الخاص به بجانب برنامج جدولة التطبيق.بينما يتقاتلون من أجل الهيمنة على وحدة المعالجة المركزية، يفوز برنامج OpenGL دائمًا لأنه يحتاج إلى المزيد من الطاقة في كثير من الأحيان.

تأكد من إيقاف تشغيل cocos2D وOpenGL بشكل كامل.حتى لو تم استدعاء [[CCDirector ShareDirector] مؤقتًا فقط].

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