0

このコードは、CCSPrite、フックを追加したActionメソッドをヒットしたときにエラーを生成し、フックをオーバーライドしてフックに接続された線を描画します。

    -(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;
}

フックはCSpriteであり、描画メソッドをオーバーライドしました

 @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()はOpenGLES1.1関数です。cocos2d 2.xを使用している場合は、OpenGLエラーの原因となる可能性があります。OpenGLES2.0アプリでOpenGLES1.1機能を使用することはできません。

于 2012-09-14T22:33:32.043 に答える