使用CCCamera - Cocos2d时,将CCRenderTexture限制在屏幕顶部

时间:2011-06-14 10:53:14

标签: iphone cocos2d-iphone

我有一张“迷你地图”,用于展示背景的一部分。

如何将CCRenderTexure限制在屏幕的右上角?我也在使用CCCamera来跟踪一个精灵。

在init()

CGSize s = [[CCDirector sharedDirector] winSize];

    minimap = [[CCRenderTexture renderTextureWithWidth:s.width * 1.5 height:s.height * 1.5] retain];

    [minimap setPosition:ccp( s.width - ( s.width * kMinimapScaleFactor ) - 5, s.height - ( s.height * kMinimapScaleFactor ) - 5)];


    [minimap begin];

    [self visit];


    [minimap end];

    CCSprite *mms = [minimap sprite];

    [mms setScale:kMinimapScaleFactor];

    mms.scaleY *= -1;

    mms.anchorPoint = ccp(0, 0);

    [self addChild:minimap z:1 tag:1];

    [self schedule:@selector(updateMinimap:) interval:1.0f];

以上init()

#define kMinimapScaleFactor 0.2

-(void) updateMinimap: (ccTime) dt
{
    [minimap begin];

    [self visit];

    [minimap end];
}

in .h

CCRenderTexture *minimap;

@property(nonatomic, retain) CCRenderTexture *minimap;

以下是我如何使用CCCamera

id cameraMove = [CCFollow actionWithTarget:_ball];
        [self runAction:cameraMove];

有人知道吗?

由于

1 个答案:

答案 0 :(得分:0)

您只需将其添加到场景ID

即可
+ (id)scene
{
    CCScene *scene = [CCScene node];
    GameScene *layer = [GameScene node];
    [scene addChild:layer];

    CGSize s = [[CCDirector sharedDirector] winSize];

    layer.player = [CCRenderTexture renderTextureWithWidth:s.width height:s.height];

    CCSprite *mms = [layer.player sprite];

    [mms setScale:kMinimapScaleFactor];
    mms.scaleY *= -1;
    mms.position = ccp(300, 400);

    [scene addChild:layer.player z:2 tag:1];

    [layer schedule:@selector(updateMinimap:) interval:1/30.0f];

    layer._mini = [CCSprite spriteWithFile:@"minimap.png"];
    layer._mini.position = ccp(405, 255);
    layer._mini.opacity = 150;

    [scene addChild:layer._mini];

    return scene;

}