我將遊戲引擎的各個部分移植到另一個遊戲代碼中,我有兩個問題。GameScene sharedGameScene與GameScene節點
代碼:
-(void) checkForBulletCollisions
{
Enemy* enemy;
CCARRAY_FOREACH([batch children], enemy)
{
if (enemy.visible)
{
BulletCache* bulletCache = [[GameScene sharedGameScene] bulletCache];
//etc etc
的GameScene項目我移植這個代碼不是單喜歡GameScene是在上面的代碼。
這裏是GameScene的接口代碼:
@interface GameScene : CCScene
+(void) newGame:(NSString*)levelFile;
-(void) reloadGame:(NSString*)levelFile;
@end
當移植的代碼上線我換成與代碼的頂線:
BulletCache* bulletCache = [[GameScene node] bulletCache];
我在正確的軌道上?
[GameScene節點]返回一個新的GameScene實例,這樣你就不會得到預期的結果。具有checkForBulletCollisions方法的類應該具有對GameScene實例的引用,以便您可以調用bulletCache = [theGameSceneInstance bulletCache];此外,GameScene不是一個單身人士的好選擇。 – hiepnd 2011-12-30 01:56:51