我一直试图弄清楚如何在iPhone上制作粉末玩具风格的游戏。我的问题是如何在屏幕上绘制像素。根据我的阅读,OpenGL更适合游戏,因为它更快/硬件加速,但没有方法可以将像素直接绘制到屏幕上。显然,将像素绘制到屏幕外帧缓冲区是可行的方法,但是如何将其传递给OpenGL呢?我使用纹理吗?
(假设我以前没有iPhone图形编程知识)。
谢谢!
答案 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);
}