Cocos2D-iphone 在 CCTexture2D 中使用 drawAtpoint 函数出现问题

Posted

技术标签:

【中文标题】Cocos2D-iphone 在 CCTexture2D 中使用 drawAtpoint 函数出现问题【英文标题】:Cocos2D-iphone trouble using drawAtpoint function within CCTexture2D 【发布时间】:2011-05-05 20:15:43 【问题描述】:

我是 cocos2d-iphone 新手,如果有任何帮助,我将不胜感激。我的问题是我试图在 CCTexture2D 中使用 drawAtPoint 方法,但似乎没有运气。当我运行代码时,当程序在 drawAtpoint 函数中到达 glDrawArrays(GL_TRIANGLE_STRIP, 0, 4) 行时,我得到一个 EXC_BAD_ACCESS 运行时错误。

下面是我用来测试功能的类。它扩展了 CCSprite,我用下面的代码覆盖了 draw 方法。我正在运行 cocos2d 版本 1.0.0 rc2。

#import "Background.h"

@implementation Background

-(void)draw


    glEnableClientState( GL_VERTEX_ARRAY);
    glEnableClientState( GL_TEXTURE_COORD_ARRAY );

    glEnable( GL_TEXTURE_2D);

    glColor4ub( 255, 255, 255, 255);

    [texture_ drawAtPoint:CGPointZero];

    glColor4ub( 255, 255, 255, 255);

   glDisable( GL_TEXTURE_2D);
    glDisableClientState(GL_VERTEX_ARRAY );
    glDisableClientState( GL_TEXTURE_COORD_ARRAY ); 
    [super draw];


@end

【问题讨论】:

【参考方案1】:

这表明您的变量texture_ 未设置,或者不再有效。

您在哪里设置该变量,您是否确认它已正确启动?

【讨论】:

感谢纳什!我正在使用background = [[Background alloc] initWithFile:@"woodTile.png"]; 我会看看纹理是否经过验证 我现在舔了它,结果我需要将行 glBindTexture(GL_TEXTURE_2D, [texture_ name]); 添加到绘图函数中。非常感谢您为我指明了正确的方向! CCTexture2D -drawAtPoint:调用glBindTexture,不需要从draw函数中调用。

以上是关于Cocos2D-iphone 在 CCTexture2D 中使用 drawAtpoint 函数出现问题的主要内容,如果未能解决你的问题,请参考以下文章

Cocos2d-iphone,替换场景时不调用dealloc

在 ARC 中启动新的 Cocos2d-iPhone 项目后出现内存警告。初学者

通过编程指南和源码学习cocos2d-iphone的感觉迷失了

为啥 glBindFramebuffer(GL_FRAMEBUFFER, 0) 会导致 cocos2D-iphone 出现黑屏?

Cocos2d-iphone - Sphero 集成

使用 UIRotationGestureRecognizer Cocos2D-iPhone CCSprite 旋转速度非常快