使用CCCamera-Cocos2d时,将CCRenderTexture约束在屏幕顶部

问题描述

| 我有一个“迷你地图”,用于显示部分背景。 如何将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];
}
在.h中
CCRenderTexture *minimap;

@property(nonatomic,retain) CCRenderTexture *minimap;
这是我使用CCCamera的方法
id cameraMove = [CCFollow actionWithTarget:_ball];
        [self runAction:cameraMove];
有人知道吗 谢谢     

解决方法

        您所要做的就是将其添加到场景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;

}