سؤال

باستخدام COCOS2D لتطوير لعبة iPhone ، أشعر بالارتباك بين الطبقة والمشهد. على سبيل المثال ، تحتوي لعبتي البسيطة على العديد من "صفحات واجهة المستخدم" مثل القائمة الرئيسية ، و Highscores ، ولوحة اللعبة ، إلخ.

هل يجب أن أستخدم الطبقة أو المشهد لكل "صفحة واجهة المستخدم" ، ولماذا؟

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

المحلول

مراجعة spritesdemo.m/.h ، يبدو أنها تستخدم طبقة ، ثم إنشاء مشاهد جديدة ، وربط الطبقة ثم استبدال المشهد على المخرج

@interface SpriteDemo : Layer
@interface SpriteManual : SpriteDemo

الرمز ثم ما يلي:

-(void)nextCallback:(id)sender {
  Scene *s = [Scene node];
  [s add: [nextAction() node]];
  [[Director sharedDirector] replaceScene s];
}

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

نصائح أخرى

من السهل:

لديهم cclayer في هذه الأمثلة وطريقة مشهد A +التي تصنع مشهدًا جديدًا ويعلق الطبقة عليها. لأن الطبقة ليست "صفحة واجهة المستخدم" كما قمت بتسميتها. المشهد هو "صفحة واجهة المستخدم".

في كل من (المشهد والطبقة) يمكنك إضافة المزيد من الطبقات كأطفال. لذلك يمكنك تكديس العديد من الطبقات كما تريد. هذه في الواقع طريقة جيدة لتمكين اللمس المتعدد - عن طريق إنشاء طبقة لكل من كائناتك وتمكين اللمسات على تلك الطبقات. خلاصة القول ، الطريقة التي فعلوها هي الصواب ، لذلك يجب عليك العمل أيضًا مع طبقات واستخدام طريقة المشهد +لتوصيل الطبقة الرئيسية بالمشهد.

أتمنى أن يساعدك هذا. اسف للغتى الانجليزيه. ليس أصليًا.

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

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