0

当我点击添加 CCSPrite、钩子的 Action 方法时,这段代码会生成错误,我重写了 Hook 以绘制一条连接到钩子上的线。

    -(void)Action
{
 // Create the hook
Hook *hook = [Hook spriteWithTexture:[[CCTextureCache sharedTextureCache]   textureForKey:@"hook2_small.png"]];
 hook.position = ccp(self.fishToCatch.position.x, self.fishToCatch.position.y - 10);
  [self addChild:hook];


// Create appropriate move and move finished actions for hook and fish
 id fishMove = [CCMoveTo actionWithDuration:0.5 position:ccp(200, 433 - self.fishToCatch.contentSize.height/2)];
 id fishMoveDone = [CCCallFuncN actionWithTarget:self selector:@selector(spriteMoveFinished:)];
id updateScore = [CCCallFuncN actionWithTarget:self selector:@selector(updateScore:)];


 id hookMove = [CCMoveTo actionWithDuration:0.5 position:ccp(200, 433 - self.fishToCatch.contentSize.height/2 - 10)];
id hookMoveDone = [CCCallFuncN actionWithTarget:self selector:@selector(spriteMoveFinished:)];

 // Run the actions
 [hook runAction:[CCSequence actions: hookMove, hookMoveDone, nil]];
 [self.fishToCatch runAction:[CCSequence actions: fishMove, fishMoveDone, updateScore, nil]];

[[SimpleAudioEngine sharedEngine] playEffect:@"splash.mp3"];
 self.fishToCatch = nil;
}

Hook 是 CSprite,我重写了 draw 方法

 @implementation Hook

 - (void)draw
  {

   [super draw];
   glEnable(GL_LINE_STRIP);
   glLineWidth(1.0);

   ccDrawColor4F(14.0/255.0,118.0/255.0,188.0/255.0,1.0f);

   ccDrawLine(ccp(self.contentSize.width - 15, self.contentSize.height), ccp(253 - self.position.x,459 - self.position.y));

   // ccDrawLine(ccp(0,0), ccp(100, 100));

  }
 @end

我看到的错误是

OpenGL error 0x0500 in -[CCGLView swapBuffers] 280
OpenGL error 0x0500 in -[CCGLView swapBuffers] 280
OpenGL error 0x0500 in -[CCGLView swapBuffers] 280
 OpenGL error 0x0500 in -[CCGLView swapBuffers] 280
OpenGL error 0x0500 in -[CCGLView swapBuffers] 280
OpenGL error 0x0500 in -[CCGLView swapBuffers] 280
 OpenGL error 0x0500 in -[CCSprite draw] 532
OpenGL error 0x0500 in -[CCSprite draw] 532
OpenGL error 0x0500 in -[CCSprite draw] 532
4

1 回答 1

1

glLineWidth() 是一个 OpenGL ES 1.1 函数。如果您使用的是 cocos2d 2.x,它可以解释 OpenGL 错误。您不能在 OpenGL ES 2.0 应用程序中使用 OpenGL ES 1.1 函数。

于 2012-09-14T22:33:32.043 回答