2011-06-14 25 views
0

我有一個「迷你地圖」,用於顯示背景的一部分。使用CCCamera時,將CCRenderTexture約束到屏幕頂部 - Cocos2d

如何限制CCRenderTexure到屏幕的右上角?我也使用CCCamera來跟蹤精靈。

在初始化

()

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]; 

任何人都知道嗎?

感謝

+0

不能添加微縮作爲紋理一些ccSprite實例? – Ali1S232 2011-06-14 16:52:47

+0

雖然我使用CCCamera來遵循特定的精靈。我的背景是2048 x 1732 – Jonathan 2011-06-14 19:45:31

回答

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; 

}