سؤال

وأستخدمه cocos2d-فون لوضع العفاريت على طبقة لإعداد ملعب واللعبة. في بعض النقاط في اللعبة، تحتاج بعض العفاريت المراد حذفه بناء على شروط اللعبة. ما أود القيام به هو إعداد مجموعة من المؤشرات العفريت، ولكن لدي سؤالان:

ما هي أفضل طريقة لوضع مؤشرات العفريت في مجموعة؟

وكيف يمكن للمرء إزالة العفريت في cocos2d سوى مؤشر إلى العفريت؟ أنا أعرف كيفية القيام بذلك من طبقة الأم، ولكن هذا هو وقت للغاية مكثفة للعبة الحلقة الرئيسية.

ويرجع الفضل في ذلك مسبقا!

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

المحلول

والطبقة Sprite يرث من CocosNode، لذلك يجب أن تكون قادرا على استدعاء spritePointer.parent.remove(spritePointer)

نصائح أخرى

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

Sprite * mySprites[10][10]; // assuming a 10x10 playfield where obstacles get placed

وبعد ذلك، عند إعداد العفاريت الخاص بك:

mySprites[0][0] = [Sprite spriteWithFile: @"obstacle.png"];   
[myLayer add:mySprites[0][0]];  

لإزالة العفريت:

[myLayer remove:mySprites[0][0]];

وهناك أيضا [mySprite removeFromParentAndCleanup:YES].

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