例如我們以下列的程式碼載入一張圖片到畫面中,我們希望圖片可以出現在畫面的右下角,但照這樣的寫法,螢幕左下角只會出現圖片的一角而已。
CCSprite *sprite = [CCSprite spriteWithFile:@"testPic.png"]; sprite.position = ccp(0, 0); [self addChild:sprite];
那要如何透過 anchorpoint 做修正呢?
Anchorpoint 的使用方法為:
sprite.anchorpoint = ccp(x, y);
裡面的兩個參數一般設定為 0~1 之間,剛好可以組合出對應於圖片的四個角落,而預設的 anchorpoint 為 (0.5, 0.5) ,所以為圖片的正中心點。
再參考下列例子,首先將位置設定為螢幕的正中心,我們將透過設定不同的 anchorpoint ,來看看圖片將如何對齊。
首先是不特別設定,讓 anchorpoint 以預設的方式載入,果然,圖片的正中心會剛好就在螢幕的正中心。
CGSize winSize = [[CCDirector sharedDirector] winSize]; CCSprite *sprite = [CCSprite spriteWithFile:@"testPic.png"]; sprite.position = ccp(winSize.width/2, winSize.height/2); [self addChild:sprite];
再來,試試將 anchorpoint 設為 (0, 0),結果,圖片的左下角對準在螢幕的正中心,也就是我們所設的 position 位置。
CGSize winSize = [[CCDirector sharedDirector] winSize]; CCSprite *sprite = [CCSprite spriteWithFile:@"testPic.png"]; sprite.anchorPoint = ccp(0, 0); sprite.position = ccp(winSize.width/2, winSize.height/2); [self addChild:sprite];
anchorpoint 為 (1, 0) 時,變成圖片的右下角對準螢幕中心。
CGSize winSize = [[CCDirector sharedDirector] winSize]; CCSprite *sprite = [CCSprite spriteWithFile:@"testPic.png"]; sprite.anchorPoint = ccp(1, 0); sprite.position = ccp(winSize.width/2, winSize.height/2); [self addChild:sprite];
最後,設定anchorpoint 為 (1, 1),理所當然地,圖片的右上角會對準螢幕的正中心。
CGSize winSize = [[CCDirector sharedDirector] winSize]; CCSprite *sprite = [CCSprite spriteWithFile:@"testPic.png"]; sprite.anchorPoint = ccp(1, 1); sprite.position = ccp(winSize.width/2, winSize.height/2); [self addChild:sprite];