- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 NSMutableArray
,其中包含我的 CCNode。我想使用 [scene addChild:]
和 [CCNode removeFromParentAndCleanUp:YES]
在我的 CCScene 上绘制和取消绘制它们。当它检查我的任何对象是否有父对象并且它同时在另一个类中被删除时,我的问题就出现了。你可以看到这段代码,它总是在那里崩溃:
for(int y = negativeY; y < positiveY; y++){
for(int x = negativeX; x < positiveX; x++){
if([[self.rockArray objectAtIndex:y] objectAtIndex:x] != nil){ //checking if object is not null
if([[[self.rockArray objectAtIndex:y] objectAtIndex:x] parent] == nil){ //Crashes here!
NSLog(@"Rock is not visible. Painting it");
[listener addChild:[[self.rockArray objectAtIndex:y] objectAtIndex:x]];
}else{
NSLog(@"Rock is already visible.");
}
}
}
}
日志消息是 *** 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-[NSNull parent]:无法识别的选择器发送到实例 0x351d6b0”
也许我们可以使用Semaphores
来解决这个问题? (如果是这样,你能给我发一个 Objective C 的例子吗?)
感谢您的宝贵时间!
最佳答案
像这样检查你的对象:
[[self.rockArray objectAtIndex:y] objectAtIndex:x] != [NSNull null]
在发送 parent
消息之前。
崩溃的发生是因为由于某种原因,你的数组中的对象不是 CCNode
而是 NSNull
,它不响应 parent
选择器。
你不应该检查它是否为 nil
因为集合不能保留 nil
指针
关于ios - 在 Cocos2D 3.0 中可以删除的情况下检查 CCNode 是否有父节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26202538/
我尝试在互联网上搜索一种可以从场景中获取特定节点的方法。我看过很多方法,但都没有给我明确的答案。 我已经在 Cocos2D 的 SpriteBuilder 中构建了一个场景。这是 MainScene.
出于某种原因,我的 CCNode 上的删除功能在动画运行后不起作用。 我在点击时添加一个 CCNode,运行动画然后运行删除功能。 // loads the Coin
我在 SpriteBuilder 中创建了一个 CCNode 并添加了一些子节点(标签、按钮和 Sprite )。在 SpriteBuilder 上,我使子节点的位置相对于父节点左上角保持不变。 在运
很简单的问题。我在 Objective C (cocos2d) 中工作,我正在尝试计算当前显示的图层上存在的某个类的 Sprite 的数量。例如,我有一个名为 Seal 的类这是 CCNode 的子类
我已经四处寻找了一段时间,但出于某种原因我一直没能找到答案。看起来很简单,但也许我只是在库中找不到合适的函数。 我有一个场景,其中有一个层包含一堆 CCNode,每个 CCNode 中都有一个 CCS
我有一个具有特定旋转的 CCNode。为了简单起见,假设它旋转了 45 度,大小为 100*100,位置为 200,200。 我正在查找此图像上的 4 个角坐标(标记为绿色)。框架中是否有任何方法可用
在我为 cocos2d 游戏找到的模板的基本 HitTest 函数中,原作者使用以下内容来确定在运行循环期间对哪些对象执行 HitTest 。 for (Enemy *someEnemy in sel
我想绘制一些自定义的 opengl 元素,例如 ccdrawline()。根据 cocos2d 文档,我应该覆盖 draw() 方法以在我的子类层中绘制我的东西。但是它不起作用。而如果我覆盖 visi
有谁知道如何以编程方式更改 CCNode 的图像?我正在使用 SpriteBuilder 制作一个简单的游戏。 最佳答案 CCNode 没有图像。只有 CCSprite 有图像。您可以使用 sprit
我对我的 Cocos2d 实例的行为有点困惑,我需要一些帮助。我从 Cocos2D CCNode position in absolute screen coordinates 借用了这段代码.非常简
如果我的设计师给我一张 960x640 像素的屏幕外观图片,以及所有单独的图片或文本元素,有没有一种方法可以在 iPhone/iPad 屏幕上布置图片和文本而不需要通过代码手动完成?我现在的做法是通过
我看到某些文本似乎总是继承 CCSprite。我在某处读到这样做不好,最好从一些基本的东西开始。我想知道职业游戏开发者在游戏结构方面做了什么。即子类 CCSprite 或在 NSObject 类 ET
作为我之前关于 displaying the anchor point 的问题的后续问题,我将CCSprite子类化并改变了它的draw方法如下: [super draw]; ccDrawColor4
我最近开始探索cocos2d v3.0。我正在尝试一些基本的东西,但遇到了一些麻烦。 基本上,我通过子类化 CCSprite 来创建 Square 对象。之后将方形对象添加到我的 Helloworld
我正在尝试制作一个 Spritebuilder iPhone 游戏,我的主要角色 _player 是一个 CCNode,它的子节点是一个 CCBFile,它包含角色的空闲动画。 我想将此 _playe
有没有办法显示CCNode的 anchor ?这对于调试非常有用。 最佳答案 不是内置的,但你可以 draw a point or circle在 anchor 位置使用 anchorPointInP
这是到目前为止我的代码。我的计划是最终给每个变量一个随机值,但是当我在游戏中更新它们时,但在类中我认为我应该创建实例变量并将它们初始化为某些值。 import UIKit class Planet:
我有一个 NSMutableArray,其中包含我的 CCNode。我想使用 [scene addChild:] 和 [CCNode removeFromParentAndCleanUp:YES] 在
我尝试设置标签并且成功了,但是当我将 CCnode 插入到 CCDictionary 时并尝试获取 CCNode 并检查标签,它是 0。 int tagNum = 242; //Gem i
这可能需要一些解释,但在这里,非常感谢任何见解。 简短版本:如何创建一个 TouchableButton(它自己检测触摸),其 CCSprite 图像是另一个类中 CCSpriteBatchNode
我是一名优秀的程序员,十分优秀!