【发布时间】:2016-06-30 10:59:19
【问题描述】:
版本: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:shader: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");
【问题讨论】:
-
请解释其发生的原因
-
编辑问题的标题。真的吓到我了。
-
这意味着它为你工作..我应该与你分享我的代码......所以你可以有更好的概述
-
好的。共享,但只共享您认为有错误的代码的相关部分。
-
这里是项目的链接:- github.com/ud230688/SpaceShooter.spritebuilder 这里是代码关注的相关函数名称:- [VisualWorld addPlayer] 和 [GamePlayScene initWithVisualWorld:(VisualWorld*)lobjVW 资源:(NSArray* )larrayResources].....如果您对项目中的代码有任何问题或疑问,请检查并让我知道。 @psyco
标签: ios iphone cocos2d-iphone physics spritebuilder