我實際上學習SpriteBuilder
這對我來說真的是一個很好的工具,但我面臨着在我的場景中包含CCNode
(編程方式)的麻煩。插入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
似乎你一切正常。嘗試調試物理,看看有什麼有什麼,沒有一個物理機構,從我可以告訴這是一個簡單的我忘了發佈問題或忘記設置物理機構問題。你可以通過設置physicsNode.debugDraw = YES來做到這一點 –