Cocos2d图像掩蔽

时间:2013-08-13 11:16:28

标签: ios cocos2d-iphone mask masking

我正在制作主角骑在船上的游戏,当敌人与船平行时,它会掉落一根管子。我的主要问题是管子比船子大,所以当它向下或向上时可以从后面看到。请注意,管顶部的图像(船)是透明图像。谢谢! enter image description here enter image description here enter image description here

2 个答案:

答案 0 :(得分:1)

您可以毫不费力地在Cocos2d中剪裁绘制区域。如果将此代码添加到管对象,则可以定义合适的区域来绘制对象。此矩形之外的任何内容都不会被绘制。

-(void) visit
{
if(!self.visible)
    return;

glEnable(GL_SCISSOR_TEST);

CGRect thisClipRegion = _clipRegion;
thisClipRegion = CC_RECT_POINTS_TO_PIXELS(thisClipRegion);

glScissor(thisClipRegion.origin.x, thisClipRegion.origin.y, thisClipRegion.size.width, thisClipRegion.size.height);

[super visit];

glDisable(GL_SCISSOR_TEST);
}

答案 1 :(得分:0)

我认为你必须管理两个管图像,一个是大的,另一个是小的,这适合你的船。 你放下这个管时你必须改变管图像。 要更改管图像,请使用此代码

CCTexture2D* tex = [[CCTextureCache sharedTextureCache] addImage:@"blast.png"];
            [player setTexture: tex];

这里播放器是CCSprite。

CCSprite *player;