اي فون وCocos2d العفاريت / الطبقات
-
11-07-2019 - |
سؤال
وأستخدمه 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]
.