Каков наилучший способ изменить цвет «пиксель за пикселем» на iPhone? - PullRequest
1 голос
/ 16 июня 2009

У меня есть игра, которая представляет собой адаптацию для iPhone , эта игра . Здесь мой корабль прокладывает пути, и тогда закрытый путь заполняется, если в этой закрытой зоне нет врагов.

Я взял playField как двумерный массив (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, а затем StrokePath of Quartz, который занимает слишком много времени.

Есть ли что-нибудь более простое? Как предопределение изображения 1x1 и рендеринг его на каждом пикселе? Или просто получить и установить цвет каждого пикселя?

PS: я не знаю OpenGL. Если то, что вы объясняете, относится к OpenGL, пожалуйста, более подробно об этом. Спасибо.

1 Ответ

3 голосов
/ 16 июня 2009

Вы должны создать CGBitmapContext, который принимает буфер данных для хранения данных изображения. Когда вы создаете CGBitmapContext, вы указываете, в каком формате хранить данные пикселей.

Затем, чтобы изменить изображение, вы можете просто изменить буфер, а затем воссоздать UIImage из него, чтобы нарисовать его на экране.

...