我有一個基於tiledmap的應用程序,我正在努力讓精靈在其上移動。不過,當我正在處理這件事時,我注意到了一些事情如果我運行下面的代碼:科科斯2d瓷磚地圖。 Sprite在0,0部分偏離地圖?
float x = 0.0f;
float y = 0.0f;
playerSprite.position = ccp(x,y);
然後我的球員實際上是離線地圖:
playerSprite.position = ccp(x + playerSprite.boundingBox.size.width/2, y + playerSprite.boundingBox.size.height/2)
:
我應該代替通過定位我的性格來彌補這個
或者我在做我的地圖配置有問題嗎?如果瓦不能擴展到全0,0?
我的地圖初始化如下:
// Setup our map
map = [CCTMXTiledMap tiledMapWithTMXFile: @"Map.tmx"];
NSAssert(nil != map, @"Map is nil");
[self addChild: map z: -1];
而且球員被初始化寬度:
[[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile: @"SpriteTest.plist"];
CCSpriteBatchNode *spriteSheet = [CCSpriteBatchNode batchNodeWithFile:@"SpriteTest.png"];
[self addChild: spriteSheet];
self.playerSprite = [CCSprite spriteWithSpriteFrameName: @"cyanWalkHorizontal1.png"];
[spriteSheet addChild: self.playerSprite];
self.playerSprite.position = ccp(0,0);
所以,總的來說,我只是想知道,如果即時通訊做初始化錯誤,它的我在定位時應該考慮精靈的寬度/高度。
多數民衆贊成在指出我。我有點困惑,但..如果CCSprite的默認anchorPoint是0.5,0.5(我確信這就是我的playerSprite的anchorPoint是),那麼它不應該與地圖正確對齊,而不需要添加'playerSprite.boundingBox.size.width/2'到x位置? – Kyle
不可以。當您爲節點設置位置時,它是它的錨點,它將被固定到節點父級中具有這些座標的點。因此,當你的sprite的中心有錨點,並將其位置設置爲(0,0)時,它的中心將位於其父母的(0,0)點。無論錨點如何,節點的原點始終位於左下角。 – Kreiri