jjzjj

ios - CCNode 重写 draw() 方法不起作用

我想绘制一些自定义的opengl元素,例如ccdrawline()。根据cocos2d文档,我应该覆盖draw()方法以在我的子类层中绘制我的东西。但是它不起作用。而如果我覆盖visit()方法,我可以看到我想要绘制的内容。我对此感到困惑,我正在寻找解决这个问题的想法。我是这样写的:-(void)draw{[superdraw];CGPointa=ccp(0,0);CGPointb=ccp(480,320);ccDrawLine(a,b);} 最佳答案 您的代码是正确的,应该可以工作。但我依稀记得CCLayer类不调用draw。无论

ios - Cocos2d - 以编程方式更改 CCNode 图像

有谁知道如何以编程方式更改CCNode的图像?我正在使用SpriteBuilder制作一个简单的游戏。 最佳答案 CCNode没有图像。只有CCSprite有图像。您可以使用spriteFrame属性更改CCSprite的图像。 关于ios-Cocos2d-以编程方式更改CCNode图像,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/22029250/

ios - 我应该继承 CCSprite、CCNode 还是 NSObject?

我看到某些文本似乎总是继承CCSprite。我在某处读到这样做不好,最好从一些基本的东西开始。我想知道职业游戏开发者在游戏结构方面做了什么。即子类CCSprite或在NSObject类ETC中添加CCSprite。我希望我的问题是有道理的。 最佳答案 你的问题绝对有道理。这基本上是一个架构问题。如果您的游戏主要基于“动画”,我会选择子类化CCSprite。如果您的游戏主要基于某种逻辑,可能是RPG或其他任何内容,那么屏幕表示实际上只是游戏状态的可能View之一。因此,在我看来,它应该是代表游戏状态的对象树中对象的一部分。换句话说:如

ios - 我应该继承 CCSprite、CCNode 还是 NSObject?

我看到某些文本似乎总是继承CCSprite。我在某处读到这样做不好,最好从一些基本的东西开始。我想知道职业游戏开发者在游戏结构方面做了什么。即子类CCSprite或在NSObject类ETC中添加CCSprite。我希望我的问题是有道理的。 最佳答案 你的问题绝对有道理。这基本上是一个架构问题。如果您的游戏主要基于“动画”,我会选择子类化CCSprite。如果您的游戏主要基于某种逻辑,可能是RPG或其他任何内容,那么屏幕表示实际上只是游戏状态的可能View之一。因此,在我看来,它应该是代表游戏状态的对象树中对象的一部分。换句话说:如

ios - Cocos2d-iphone v3 带 child 的 CCNode 上的触摸事件检测

我有一个包含多个CCSprite子级的CCNode。如果有任何child被触摸,我想在我的父CCNode中接收触摸事件。这种行为似乎应该得到支持,我可能遗漏了一些东西。我的解决方案是对所有子级setUserInteractionEnabled=YES并将事件冒泡到父级。我通过子类化CCSprite类来覆盖它们的方法来做到这一点:-(void)touchBegan:(UITouch*)touchwithEvent:(UIEvent*)event{[supertouchBegan:touchwithEvent:event];}我想知道是否有更优雅、更简单和通用的方法来完成相同的行为?

ios - 是否有适用于 Mac 的图形工具来帮助在层上定位 CCNode 对象?

如果我的设计师给我一张960x640像素的屏幕外观图片,以及所有单独的图片或文本元素,有没有一种方法可以在iPhone/iPad屏幕上布置图片和文本而不需要通过代码手动完成?我现在的做法是通过一系列的试错,尝试猜测每个元素的位置。顺便说一下,我尝试做的布局类型是简单的静态布局,用于菜单和高分列表等内容。 最佳答案 您应该尝试其中一种编辑工具:LevelHelper,CocoShop和CocosBuilder.问题将出在输出格式上,确保不仅编辑部分符合您的规范,而且您实际上可以只使用将其插入代码所需的代码片段。

ios - CCNode 作为 CCScene 触摸处理程序 cocos2d v3 的子项

我已经为此苦思冥想了一段时间。我知道在cocos2dv3中它发生了变化,因此只要您设置contentSize并设置self.userInteractionEnabled=YES,CCNode就可以接受触摸。这对我不起作用。我有一个CCNode,我作为child添加到CCScene,但没有注册任何触摸。这是CCNode代码:-(id)initWithPortName:(NSString*)portNameandDesc:(NSString*)desc{self=[superinit];if(!self)return(nil);CGSizewinSize=[[CCDirectorshare