سؤال

أقوم بالتجربة والخطأ لساعات حتى الآن ولم أتوصل بعد إلى حل لشيء يبدو بسيطًا .... أنا أستخدم

Genacodicetagpre

طريقة لاكتشاف ما إذا كان المستخدم قد قام بتغيير اتجاه الشاشة. في النهاية ، يتم إرساله إلى هذه الطريقة حيث يتم إرفاق الكيانات بالمشهد: Genacodicetagpre

يتم استدعاء هذه الطريقة عند إنشاء الخلفية لأول مرة ، وكذلك عندما يغير المستخدم اتجاه الشاشة.

لقد اختبرت ذلك على هاتفي وهو يعرض بنجاح رسائل السجل عندما أقوم بتبديل الاتجاهات ، مما يعني أنه يفعل ذلك ما أريده أن يفعله.

المشكلة -

لا ينفصل الكائن الصغير عند استدعاء هذه الطريقة.إذا كنت في الوضع الرأسي ، وقمت بالتبديل إلى الوضع الأفقي ، فإن الكائن العمودي يظل موجودًا وأود أن يختفي ، والعكس صحيح.

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

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

المحلول

يبدو أن المشكلة قد تكون منطقية: لقد قمت بإعادة تعيين SpriteDayPortrait و SpriteDayLanscape قبل استدعاء الفرع حول فصلهما أو إرفاقهما.

لذلك في كل مرة يتم استدعاء البرنامج النصي المنفصل ، فإنه يشير إلى مثيل جديد من الكائن ، بدلاً من المثيل القديم الذي تريد فصله.

حاول نقل تعيين النقوش المتحركة إلى وظيفة أخرى لا يتم استدعاؤها إلا عند إنشاء المشهد: Genacodicetagpre

نصائح أخرى

ضع في اعتبارك أنه نظرًا لعدم وجود تغيير الاتجاه في AndEngine (لا يُسمح لك بتغيير اتجاه المحرك) ، فلا يجب أن تجعل لعبتك تستخدم تغييرات الاتجاه (قد يكون ذلك غريبًا بالنسبة للمستخدم).

على أي حال ، يتم استدعاء رمز الترقيم العام من مؤشر ترابط واجهة المستخدم ، ويجب ألا تتعامل مع كائنات AndEngine ولكن في UpdateThread.قد يتسبب ذلك في بعض المشكلات (ومع ذلك ، إذا حدث ذلك ، فستتعطل لعبتك) لذا قم بتغييرها.

أعتقد أن هذا يحدث لأنك لم تمسح رمز الترميز العام قبل تعيين الخلفية الجديدة (ربما تخفي الخلفية القديمة الخلفية الجديدة؟) احتفظ بمرجع إلى آخر رمز رمز عام ، ثم أزله من الخلفية قبل إضافة رمز جديد.

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