1
@implementation demoScene{

-(void) initializeScene {
moon *_moon=[[moon alloc]init];
}
-(void) updateBeforeTransform: (CC3NodeUpdatingVisitor*) visitor {

    deltaTime =deltaTime+visitor.deltaTime;
    NSLog(@"delta time=%0.12f",deltaTime);
    [_moon print:deltaTime/100000];
}
@end

これが私の問題です。

メソッド内のmoonクラスからオブジェクトを作成し、initializeSceneメソッド内のそのオブジェクトにメッセージを送信したいと思いますupdateBeforeTransform

このようなコードを入力すると、_moonオブジェクトにメッセージを送信できず、 「未使用の変数」という警告メッセージが表示されます。

オブジェクトがスコープ外であることはわかっていますが、メソッドからメッセージを送信する必要がある場合updateBeforeTransform。そして、updateBeforeTransformメソッドは1秒間に60回のように呼び出されます。そのため、1秒間に60回オブジェクトを作成したくありませんでした。

任意の提案をいただければ幸いです。

4

1 に答える 1

2

initializeSceneメソッドで新しい変数を作成する代わりに、インスタンス変数が必要です。

@implementation demoScene {
    moon *_moon; // You may already have this in the .h file - just have it in 1 place.
}

- (void)initializeScene {
    _moon = [[moon alloc] init]; // assign to ivar
}

- (void)updateBeforeTransform:(CC3NodeUpdatingVisitor*) visitor {
    deltaTime = deltaTime + visitor.deltaTime;
    NSLog(@"delta time=%0.12f", deltaTime);
    [_moon print:deltaTime / 100000];
}

@end

補足-クラス名は大文字で始める必要があります。変数とメソッド名は小文字で始まります。

于 2012-12-21T00:32:17.617 に答える