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 出现黑屏?
使用 UIRotationGestureRecognizer Cocos2D-iPhone CCSprite 旋转速度非常快