Tag: cocos2d iphone

未findSpriteBuilder映像文件

我在精灵生成器资源文件夹中添加了一个.png图像,并发布了它。 我在Published-IOS下的Resources下的Sprite builder all文件夹中看到添加的图像。 在这里,我试图通过以下方式访问添加的图像。 _hero.spriteFrame = [CCSpriteFrame frameWithImageNamed:@"Down.png"]; [_hero setTexture:[CCTexture textureWithFile:@"Game/Down.png"]] 但是这些方法都没有工作。 它显示错误日志为。 -[CCFileUtils fullPathForFilename:contentScale:] : cocos2d: Warning: File not found: Down.png 请帮我解决这个问题。一个使用这个精灵build造者的新手。

Objective-C ++导入C ++类失败,cassert找不到

所以我想在我的cocos2d + box2d项目中公开一个Box2D(C ++)指向其他Objective-C ++类的指针。 我在我的接口中声明了一个方法“getWorld”,它引用C ++类b2World并导入Box2D.h。 我的项目中的所有文件都是.mm扩展名,并且出现以下编译错误: In file included from DebugDrawLayer.mm:2: In file included from World.h:10: In file included from external/Box2d/Box2D/Box2D.h:34: external/Box2d/Box2D/Common/b2Settings.h:22:10: fatal error: 'cassert' file not found #include <cassert> 我猜Box2D.h不知何故编译为C而不是C ++,但我不明白这是怎么发生的。 根据日志,包含链清楚地从一个.mm文件开始。 更新: 日志说World.mm(早先编译),它清楚地编译为objective-c ++ CompileC Objects-normal/i386/World.o World.mm normal i386 objective-c++ com.apple.compilers.llvm.clang.1_0.compiler 但是对于DebugDrawLayer.mm,它表示objective-c CompileC Objects-normal/i386/DebugDrawLayer.o DebugDrawLayer.mm normal i386 objective-c com.apple.compilers.llvm.clang.1_0.compiler 这两个文件都被设置为默认 – […]

旋转精灵来面对一个点(cocos2d)

我似乎有计算我的精灵和触摸点之间的angular度问题。 我试图让我的精灵直接面对触摸点的方向,每当用户触摸屏幕。 这是我的代码: -(void)ccTouchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{ CGPoint tapPosition; for (UITouch *touch in touches){ CGPoint location = [touch locationInView:[touch view]]; tapPosition = [self convertToNodeSpace:[[CCDirector sharedDirector] convertToGL:location]]; } float angle = CC_RADIANS_TO_DEGREES(ccpAngle(fish.position, tapPosition)); [fish runAction:[CCRotateTo actionWithDuration:0.5 angle:angle]]; } 有任何想法吗? 谢谢

应用程序崩溃,因为glGetString

我正在运行cocos2d-iphone 1.0.0,并按照本教程的说明使用cocos2d。 不幸的是,每当我尝试向CCLayer添加TMX Tiled Map时,我都会遇到“SIGABRT”崩溃错误。 我把这个问题追溯到-(BOOL)checkForGLExtension:(NSString *)searchName ,甚至进一步在这个函数内NSString *extensionsString = [NSString stringWithCString:glExtensions encoding: NSASCIIStringEncoding]; 这是checkForGLExtension函数: – (BOOL) checkForGLExtension:(NSString *)searchName { // For best results, extensionsNames should be stored in your renderer so that it does not // need to be recreated on each invocation. NSLog(@"%@", glExtensions); NSString *extensionsString = [NSString stringWithCString:glExtensions encoding: NSASCIIStringEncoding]; NSLog(@"%@", extensionsString); […]

简单的方法来显示CGRect的边界?

我试图find一种方法来显示我的iOS程序中的一些CGRect的边界用于debugging目的。 有一个相当简单的方法来做到这一点? 我只需要看看程序在哪里创build这些矩形,这样我就可以追踪到一些奇怪的触摸行为(或缺乏)。 我的类的init方法: // Initialize with points and a line number, then draw a rectangle // in the shape of the line -(id)initWithPoint:(CGPoint)sP :(int)w :(int)h :(int)lN :(int)t { if ((self = [super init])) { startP = sP; lineNum = lN; width = w; height = h; int type = t; self.gameObjectType = kPathType; // […]

退化的顶点和GL_LINE_STRIP

我在iOS 5.1上 我试图在同一个顶点数组中显示几批线,我想使用退化的顶点将它们分开。 但似乎没有工作。 我在每一批顶点之间画线。 谷歌search问题给了我的结果,退化的顶点与GL_LINE_STRIP不兼容,但我不确定。 有人可以证实吗? 还有什么替代方法?

使用openGL和cocos2D绘制大量线条的最好方法是什么?

我有一系列的2d顶点表示用于绘制网格的线条。 有大约900个线段绘制(网格使用弹簧物理来扭曲,这就是为什么我不只是为每行和每列绘制一条线)。 cocos2D内置了一个ccDrawLine函数,可以很好地绘制,但是我认为这可能是低效的,因为它为每个线段调用glDrawArrays。 你如何有效地绘制大量的线段? 作为奖励,请使用openGL推荐良好的2D绘图实践。

使用cocos2d 2.0的iPhone5S上的旋转animation问题

我正在用cocosbuilder2.1,cocos2d 2.0制作CCSprite旋转animation。 它在iPhone4S(iOS 8.0.2),iPhone5模拟器,iPad 2模拟器,iPad视网膜模拟器,但在iPhone5S(iOS 7.1.1),iPhone5S模拟器,iPad Air模拟器,iPhone 6模拟器,iPhone上有“抖动” 6 Plus模拟器。 构build设置如下所示: 在“目标”下的“生成设置” 基础SDK =最新的iOS(iOS 8.0); 有效的体系结构= arm64 armv7 armv7s 一般目标下: 部署目标= 6.0 起初我以为这是一个在cocosbuilder中的bug,但是通过手动做出一个精灵旋转和相同的问题进行testing之后,我觉得在cocos2d 2.0与iPhone5S的兼容性方面有些问题。 代码:在第一个场景的图层中 -(void)onEnter { [super onEnter]; …//play music …//load image resources CCSprite *testSprite = [CCSprite spriteWithSpriteFrameName:@"testIMG.png"]; testSprite.position = ccp(200,200); [self addChild:testSprite]; CCRotateBy *rotateAction = [CCRotateBy actionWithDuration:3 angle:360]; [testSprite runAction:rotateAction]; …//other stuff, nothing […]

了解applicationSignificantTimeChange:

我发现有时我的应用程序(Cocos2d游戏)会在重大时间变化之后以“越野车”的方式进行攻击。 例如: 情况1:当应用程序进入后台,几分钟后,我重新启动它,我可以看到加载的图像 ,然后应用程序/游戏恢复。 情况2:当应用程序进入后台并且在大量时间改变之后,应用程序有时会重新启动,有时不会。 我还不清楚为什么。 看着AppDelegate方法,我发现: // next delta time will be zero -(void) applicationSignificantTimeChange:(UIApplication *)application { [[CCDirector sharedDirector] setNextDeltaTimeZero:YES]; } 我想知道, 因为这影响了导演和导演影响animation,这个调用与案例1和案例2之间是否有联系?

cocos2d从未来的特定时间开始粒子

我正在开发一个基于cocos2d的应用程序,其中我正在利用CCQuadParticleSystem来制作闪烁的星星。 我用ParticleDesigner生成了这个粒子系统。 一旦我加载了粒子系统,代表恒星的白色圆点开始出现在背景中,过一段时间后,它们逐渐消失,这样,在粒子系统达到状态的几秒钟之后,就会出现一个满是星星的夜空。 我的问题是,我想知道是否有一种方法可以使粒子系统从未来的特定时间开始(例如t0 = 3秒),这样我就不必等待所有的开始闪烁。 我希望我已经清楚地解释了这个问题 先谢谢你 安德里亚