使用iphone sdk绘制单个像素

时间:2010-06-16 12:57:01

标签: iphone objective-c opengl-es

我一直试图弄清楚如何在iPhone上制作粉末玩具风格的游戏。我的问题是如何在屏幕上绘制像素。根据我的阅读,OpenGL更适合游戏,因为它更快/硬件加速,但没有方法可以将像素直接绘制到屏幕上。显然,将像素绘制到屏幕外帧缓冲区是可行的方法,但是如何将其传递给OpenGL呢?我使用纹理吗?

(假设我以前没有iPhone图形编程知识)。

谢谢!

1 个答案:

答案 0 :(得分:3)

通常在OpenGL中绘制基元和多边形。如果需要绘制位图,则需要为多边形应用纹理。

查看cocos2d-iphone引擎,了解基于OpenGL的2D游戏。

如果你仍然需要绘制一个像素,这里有一个来自cocos2d绘制直线的方法:

void ccDrawLine( CGPoint origin, CGPoint destination )
{
    CGPoint vertices[2];

    vertices[0] = origin;
    vertices[1] = destination;

    // Default GL states: GL_TEXTURE_2D, GL_VERTEX_ARRAY, GL_COLOR_ARRAY, GL_TEXTURE_COORD_ARRAY
    // Needed states: GL_VERTEX_ARRAY, 
    // Unneeded states: GL_TEXTURE_2D, GL_TEXTURE_COORD_ARRAY, GL_COLOR_ARRAY   
    glDisable(GL_TEXTURE_2D);
    glDisableClientState(GL_TEXTURE_COORD_ARRAY);
    glDisableClientState(GL_COLOR_ARRAY);

    glVertexPointer(2, GL_FLOAT, 0, vertices);  
    glDrawArrays(GL_LINES, 0, 2);

    // restore default state
    glEnableClientState(GL_COLOR_ARRAY);
    glEnableClientState(GL_TEXTURE_COORD_ARRAY);
    glEnable(GL_TEXTURE_2D);    
}
相关问题