0

我正在尝试使用 OpenGL 为 iPad 制作 2D 游戏。一般来说,我是 OpenGL 的新手,所以这种混合的东西是新的。

我的绘图代码如下所示:

static CGFloat r=0;
r+=2.5;
r=remainder(r, 360);

glLoadIdentity();
//you can ignore the rotating and scaling
glRotatef(90, 0,0, -1);
glScalef(1, -1, 1);
glTranslatef(-1024, -768, 0);

glClearColor(0.3,0.8,1, 1.0);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);


glEnableClientState(GL_VERTEX_ARRAY);
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
glEnable(GL_TEXTURE_2D);
glEnable (GL_BLEND);
glBlendFunc (GL_ONE,GL_ONE_MINUS_SRC_ALPHA);

[texture drawInRect:CGRectMake(512-54, abs(sin(((r+45)/180)*3.14)*500), 108, 108)];
[texture drawInRect:CGRectMake(512-54, abs(sin((r/180)*3.14)*500), 108, 108)];

(“纹理”是具有透明背景的Texture2D)我需要知道的只是制作它,以便纹理周围的蓝色框不会覆盖另一个。

4

1 回答 1

0

听起来你只需要在你最喜欢的图像编辑器中打开纹理图像,并在 alpha 通道中将蓝色区域设置为 0% 不透明(即 0)。的SRC_ALPHA部分GL_ONE_MINUS_SRC_ALPHA表示源纹理中的 alpha 值。

您可能正在使用 32 位颜色,在这种情况下,您将有四个通道,红色、绿色、蓝色和 Alpha 为 8 位。

于 2011-08-18T03:51:26.640 回答