0

したがって、私のプロジェクトでは、クラス「Survival.m」で「-(void)fire」というインスタンス メソッドを呼び出します。

-(void)fire {


NSLog(@"Firing");



CCSprite *sprite = [CCSprite spriteWithFile:@"bullet.png"];
sprite.position = player.position;
NSLog(@"%@",NSStringFromCGPoint(player.position));

[self addChild:sprite z:100];


}

これを行うと、スプライトが画面に表示されません。メソッドは別のレイヤーから呼び出されていますが、ボタンをタップするたびに「Firing」と記録されるので問題ありません。

問題が発生する可能性がある場合は、TMXTiledMap も使用しています。助けてください、ありがとう!

編集 - - - - -

他のレイヤー HUDLayer でスプライトを作成できますが、プレイヤーとタイル マップを含む Survival レイヤーでは作成できません。「init」メソッドでスプライトを作成すると正しく動作しますが、「fire」メソッドで作成すると動作しません。メソッド「fire」は HUDLayer から呼び出されていますが、ログに「Firing」と表示されているため、メソッドが呼び出されています。

1. スプライトが見えないところで作成されていますか? 2. スプライトが作成されていませんか? 3. スプライトが正しい親に追加されていませんか?

助言がありますか?

4

2 に答える 2

0

みんなありがとう、不思議な方法で解決しました。とにかく助けてくれてありがとう。レイヤーを間違った方法で宣言したと思います。良い1日を!

于 2013-01-28T18:36:50.077 に答える
0

cocos2d にスプライトを追加するには、次のようにします

CCNode *parent = [self getChildByTag:kTagParentNode];
[parent addChild:sprite];

それでも問題が解決しない場合は、追加するポイントが画面上にあることを確認し、z 値を変更してみて、それが役立つかどうかを確認してください。

編集

ファイルをインポートする場所の下にこれを追加します

enum {
kTagParentNode = 1,
};
于 2013-01-27T20:39:09.347 に答える