版本:Cocos2D V3.4,Xcode 7.2.1,SpriteBuilder 1.4.9。
您可以下载我的项目here。它是用SpriteBuilder创建的。
在CCPhysicsNode上启用调试绘制会导致崩溃:
CCPhysicsNode *_physicsWorld;
_physicsWorld = [CCPhysicsNode node];
_physicsWorld.gravity = ccp(0,0);
_physicsWorld.debugDraw = YES;//if debugDraw set to NO, crash will not occur, it happens only when its set to YES
_physicsWorld.collisionDelegate = self;
[_scene addChild:_physicsWorld];
错误:
断言失败 - [CCRenderStateGL initWithBlendMode:着色器:shaderUniforms:copyUniforms:]
我将物理主体添加到CCSprite的代码:
_PlayerSprite.physicsBody = [CCPhysicsBody bodyWithRect:(CGRect){CGPointZero, _PlayerSprite.contentSize} cornerRadius:0]; // 1
_PlayerSprite.physicsBody.collisionGroup = @"playerGroup"; // 2
[_PhysicsWorld addChild:lobjPlayerSprite
z:Z_ORDER_PLAYERS];
然后代码在CCRendererBasicTypes initWithBlendMode
处崩溃:
-(instancetype)initWithBlendMode:(CCBlendMode *)blendMode shader:(CCShader *)shader shaderUniforms:(NSDictionary *)shaderUniforms copyUniforms:(BOOL)copyUniforms
crashes here:-
NSAssert(shader, @"CCRenderState: Shader is nil");