我有一个基于 tiledmap 的应用程序,我正在努力让精灵在上面移动。但是,我在处理此问题时注意到了一些事情。如果我运行以下代码:
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);
所以,总的来说,我只是想知道我是否做错了初始化,我应该在定位它时考虑精灵的宽度/高度。