2013-10-10 87 views
0

所以這裏是我在這裏要做的事情的要點。從右下角刻度CCSprite

我有一個前景精靈的數組,我隨着玩家的移動而永遠滾動。我想要做的是當玩家開始通過Y軸上的某個點時,縮小這些前景精靈而仍然移動它們。

我希望能夠在玩家上升時從他們左下角的角度縮放小精靈,並且我沒有任何問題能夠正常工作。

真正的問題是,我還想在玩家下來時從他們右下角的角落縮放小精靈。現在我認爲,我可以做到這一點,通過設置每個精靈的錨點爲1,0之前縮放它,但似乎並沒有工作。精靈仍然從他們的左下角進行縮放。

我在這裏錯過了什麼?

// do logic to identify the scale factor we want 

for (CCSprite *sprite in foreground_sprites) 
{ 
    CGPoint old_anchor = sprite.anchorPoint; 
    [sprite setAnchorPoint:ccp(1,0)]; 
    [sprite setScale:scale_factor]; 
    [sprite setAnchorPoint:old_anchor]; 
} 
+0

你的問題在右下方,描述在左下方。如果左下角然後是錨點(0,0),右側(0,1) – Guru

回答

0

您是否嘗試過使用此屬性?

ignoreAnchorPointForPosition(false); 

我使用了cocos2d-x,應該有類似於

0

的東西,如果我理解正確的話,要縮放從左下方,而播放機的Y位置增加,但使用底部刻度正在下降?

那麼你不能單單改變錨點。定位點和位置相互配合,將精靈定位在屏幕上。因此,如果您使用(0,0)的定位點將精靈定位到屏幕上,那麼如果您想將定位點切換到(1,0),同時將其保持在屏幕上的相同位置,則需要更新位置。

CCSprite* sprite = ...; 
sprite.anchorPoint = CGPointZero; 
sprite.position = CGPointZero; 

... 

sprite.anchorPoint = CGPointMake(1.0f, 0.0f); 
sprite.position = CGPointMake(sprite.position.x + (sprite.contentSize.width * sprite.scaleX * sprite.anchorPoint.x), 
           sprite.position.y + (sprite.contentSize.height * sprite.scaleY * sprite.anchorPoint.y)); 

希望我正確理解你的問題,並能夠提供幫助。