【发布时间】:2011-11-04 05:47:26
【问题描述】:
我正在用 cocos2d 编写一个基本游戏,每当我转换到我的一个场景时,屏幕上就会添加一种颜色?我要过渡到的场景我已经覆盖了 draw 方法,因为我需要渲染一系列彩色线条来显示游戏板,据我所知,这是唯一的方法画出来。
这是进行转换的代码:
CCTransitionFadeBL *transition = [CCTransitionFadeBL transitionWithDuration:0.5 scene:gameScene];
[[CCDirector sharedDirector] replaceScene:transition];
然后gameScene中的draw方法如下:
- (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方法中?
任何帮助将不胜感激。
【问题讨论】:
标签: iphone objective-c cocos2d-iphone