gpt4 book ai didi

ios - 将 CCSprite (NSObject) 添加到 MutableArray 崩溃

转载 作者:行者123 更新时间:2023-11-28 17:54:34 26 4
gpt4 key购买 nike

我在它自己的类中有一个“炸弹”CCSprite(如果不使用 cocos2d 的人读到这个,CCSprite 几乎是一个 NSObject)。

CCSprite 文件如下所示:

Bomb.h: 
#import <Foundation/Foundation.h>
#import "cocos2d.h"
#import <OpenAL/al.h>

@class HelloWorldLayer;

@interface Bomb : CCSprite {
@private
int length;


}
@property (readwrite) int length;

@end



Bomb.m:
#import "Bomb.h"


@implementation Bomb
@synthesize length = _length;

@end

我使用 @class Bomb; 在 .h 中将它添加到我的游戏层(HelloWorldLayer,就像专业人士一样),然后我将 Bomb.h 导入到我的 HWLayer 中。 m 以及我在我的代码中使用它的地方,在这里:

Bomb *bombe = [[Bomb alloc] init];
bombe.position = explosionPoint;
bombe.length = player.explosionLength; //player is another CCSprite class. This one is from the method. ....fromPlayer:(PlayerSprite *)player
//Logging here works, tested and the bombe.position is valid and .length is valid
[currentBombs addObject:bombe];
NSLog(@"%@",currentBombs); //Here doesn't, guessing crash is at ^

如前所述,它在 addObject: 行崩溃。我真的不明白为什么,因为我只是用 Bomb 类替换了未分类的 CCSprite。崩溃只是一个(lldb),左边的东西输出了几千个:

enter image description here

它说的是描述,所以我假设它在我的 CCSprite 子类中是错误的。但是 bombe.* 日志记录工作正常!

有谁知道为什么它不起作用?

编辑:

enter image description here

最佳答案

编辑:

NSLog(@"%@",currentBombs); //Here doesn't, guessing crash is at ^

你的 %@ 意味着 NSString。 currentBombs 可能是一个整数。尝试

NSLog(@"%i",currentBombs); //Here doesn't, guessing crash is at ^

CCSprite 需要纹理。你可以(也许?)有一个 CCSprite 而没有一个,但这不是 CCSprite 的目的。

为此,您需要使用 CCNode:

CCNode* node = [CCNode new];

这是一个成熟的 Cocos2d 对象,您可以移动等等。您可以将炸弹添加到其中,然后移动 CCNode,如下所示:

Bomb *myBomb = [Bomb new]; //or whatever
CCNode* bombNode = [CCNode new];

//add the bomb to the node
[bombNode addChild:myBomb];

//move the node
bombNode.position = CGPointMake(10, 20)

这允许您从您的节点中删除 myBomb,有效地拥有您可以添加任何您想要的东西而不需要显示任何东西,但是当您想要时,它可以很容易地完成。

祝你好运

关于ios - 将 CCSprite (NSObject) 添加到 MutableArray 崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16834431/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com