0

SuccessLayer という CCLayer クラスがあります。レベルが完了すると、次のようにシーンに追加されます。

SuccessLayer *successLayer = [SuccessLayer node];
[self addChild:successLayer];

SuccessLayer では、岩を飛ばしたいと思っています。これを実現しようとしています。

-(void)onEnter{
    Asteroid *asteroid = [Asteroid spriteWithFile:@"rocks.png"];
    asteroid.position = ccp(0, 500);
    [self addChild:asteroid];
    CCMoveTo *move = [CCMoveTo actionWithDuration:2.0 position:ccp(1000, 0)];
    [asteroid runAction:move];}

ただし、機能してCCMoveToいないようです。スプライトが最初の座標に座っているのがわかりますが、それ以上のものはありません。ここで何が欠けていますか?ありがとう

4

2 に答える 2

3

[スーパー onEnter];

すべてのココの onSomething は、onSomething をスーパーにする必要があります。

于 2013-02-14T23:13:26.387 に答える
0

CCSpriteとしてキャストすることで問題を解決しました(それは正しい言い方ですか?)

CCSprite *asteroid = [Asteroid spriteWithFile:@"rocks.png"];

Asteroidはすでに CCSprite のサブクラスであるため、これが機能する理由はわかりませんが、これでアクションを実行できるようになりました。

于 2013-02-15T05:48:02.397 に答える