Я программирую основную игру на cocos2d, и когда я перехожу в одну из моих сцен, на экран добавляется цветной оттенок?Сцена, в которую я перехожу, я переопределил метод draw , потому что мне нужно отрисовать серию цветных линий, чтобы показать игровое поле, и, насколько я знаю, это единственный способ рисоватьих.
Вот код, который выполняет переход:
CCTransitionFadeBL *transition = [CCTransitionFadeBL transitionWithDuration:0.5 scene:gameScene];
[[CCDirector sharedDirector] replaceScene:transition];
И тогда метод рисования в gameScene выглядит следующим образом:
- (void)draw {
for (Arc *a in arcs) {
MyPoint *start = a.start;
MyPoint *end = a.end;
MyPoint *startLocation = [nodeScreenPositions getElementAtRow:[start getX] column:[start getY]];
MyPoint *endLocation = [nodeScreenPositions getElementAtRow:[end getX] column:[end getY]];
ArcColour colour = a.colour;
switch (colour) {
case YELLOW:
glColor4f(255, 255, 0, 255);
break;
case BLUE:
glColor4f(0, 0, 255, 255);
break;
case RED:
glColor4f(255, 0, 0, 255);
break;
case GREEN:
glColor4f(0, 255, 0, 255);
break;
case PINK:
glColor4f(128, 0, 128, 255);
break;
case CYAN:
glColor4f(0, 255, 255, 255);
break;
default:
glColor4f(255, 255, 255, 1);
break;
}
glLineWidth(2.5f);
ccDrawLine(ccp([startLocation getX], [startLocation getY]), ccp([endLocation getX], [endLocation getY]));
}
}
где arcs - это массив моих пользовательских объектов Arc, из которых состоит игровое поле.
Оттенок, применяемый к экрану, зависит от цвета первой дуги вмассив.
Можно ли как-нибудь нарисовать линии один раз, кроме метода draw ?
Любая помощь будет принята с благодарностью.