私はゲームエンジンのビットを別のゲームコードに移植しています.2つの懸念があります。GameScene sharedGameScene対GameSceneノード
コード:GameSceneは上記のコードであるよう
-(void) checkForBulletCollisions
{
Enemy* enemy;
CCARRAY_FOREACH([batch children], enemy)
{
if (enemy.visible)
{
BulletCache* bulletCache = [[GameScene sharedGameScene] bulletCache];
//etc etc
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