我是OpenGLES的新手,并且想要绘制一个点,但没有结果,这是我的绘制方法
-(void) draw
{
[super draw];
if(!isBackgroundInited)
{
glDisable(GL_TEXTURE_2D);
glEnable(GL_POINTS);
ccDrawColor4B(100,100,100,255);
ccPointSize(2);
[self drawDots];
isBackgroundInited=YES;
glDisable(GL_POINTS);
glEnable(GL_TEXTURE_2D);
}
}
-(void) drawDots
{
CGSize activeArea=CGSizeMake(winSize.width-2*margin, winSize.height-2*margin);
float xMargin=activeArea.width/dotsCount;
float yMargin=activeArea.height/dotsCount;
float yPosition=margin;
for(int i =0;i<10;i++)
{
float xPosition=margin;
for (int j=0;j<10;j++)
{
ccDrawPoint(CGPointMake(xPosition, yPosition));
xPosition+=xMargin;
}
yPosition+=yMargin;
}
}
答案 0 :(得分:0)
您只在第一帧上画点。移除isBackgroundInited
ivar,屏幕上会出现一些内容。
OpenGL每帧都会清除帧缓冲区,这是游戏的惯例,因此每帧都需要重绘整个屏幕内容。