1

我有一个游戏,它是这个游戏的 iPhone 改编版。我的船在这里开辟路径,然后如果该封闭区域内没有敌人,则封闭路径将被填满。

我已将 playField 视为 2D 数组(int playField[300][300])。

当需要更改封闭路径的颜色以显示已填充时,船的路径标记为 2,封闭的区域标记为 1。所以我已经填充了

playFieldCountX=300, playFieldCountY=300;
for (int i=0; i<playFieldCountX; i++) {
    for (int j=0; j<playFieldCountY; j++) {
        if(playField[i][j]==0){
                        "What comes here??"    }

我目前正在通过 CGContextMoveToPoint、AddLineToPoint 和 Quartz 的 StrokePath 填充路径,这花费了太多时间。

还有更简单的吗?就像预定义 1x1 图像并在每个像素处渲染它一样?或者只是获取和设置每个像素的颜色?

PS:我不知道OpenGL。如果您解释的内容与 OpenGL 有关,请详细说明。谢谢你。

4

1 回答 1

3

您应该创建一个 CGBitmapContext,它需要一个数据缓冲区来存储图像数据。创建 CGBitmapContext 时,您将指定存储像素数据的格式。

然后要更改图片,您可以简单地修改缓冲区,然后从中重新创建 UIImage 以将其绘制到屏幕上。

于 2009-06-16T05:02:36.597 回答