我实际上正在学习SpriteBuilder
这对我来说确实是一个很棒的工具,但是我面临着CCNode
在我的场景中包含一个问题(以编程方式)的麻烦。
所以,我有一个场景“ Gameplay
”,我的角色是从其他CCB
文件实现的。
关于风景,起初我把我的地图和一些墙(用于场景限制)放在我的Gameplay.ccb
(带有物理节点)中。
然后,我想从外部文件中添加那个风景(因为我希望能够在同一场景中的不同风景之间切换)。所以我创建了一个CCSprite
,我在里面插入了我的地图,然后是我的墙(这个新文件是map.ccbi
)。
当我在我的场景中实现 map.ccbi 时,显示了地图,但墙似乎不在了(角色和墙之间没有碰撞)。
Gameplay
该地图是在我的场景的物理节点中实现的。
这是我实现地图的代码部分:
- (void)didLoadFromCCB {
self.userInteractionEnabled = TRUE;
// Set the class as delegate for collision
_physicWorld.collisionDelegate = self;
_hero.physicsBody.collisionType = @"hero";
// Set up the map
CCNode *map = [CCBReader load:@"Map/TestIsland"];
// position the map
map.position = ccpAdd(_physicWorld.position, ccp(0.5, 0.5));
// add the map to the world
[_physicWorld addChild:map z:-2];
}
我的地图是通过一个类实现的:
@implementation TestIsland
- (id)init {
self = [super init];
if (self) {
CCLOG(@"Map loaded");
}
return self;
}
@end