私は、より多くの練習を得るためにcocos2dを使用していくつかのサンプルゲームに取り組んでおり、クラスに問題があります。ここに私の例です:スプライトを描画するための別のクラスは、クラスが動作しません
私はメイン層でsomeShapes.h
#import <Foundation/Foundation.h>
#import "cocos2d.h"
@interface palleteOfShapes : CCLayer
{
NSMutableArray *shapesArray;
}
@property (nonatomic,retain) NSMutableArray *shapesArray;
-(void)drawPallete;
@end
someShapes.m
#import "palleteOfShapes.h"
@implementation palleteOfShapes
@synthesize shapesArray;
-(void)drawPallete
{
shapesArray = [NSMutableArray arrayWithObjects:@"Icon.png",@"A.png",@"questionMark.png",nil];
for (int i=0; i<shapesArray.count; i++) {
NSString *imagestring = [shapesArray objectAtIndex:i];
CCSprite *sprite = [CCSprite spriteWithFile:imagestring];
NSLog(@"i value: %i",i);
sprite.position=ccp(100*i,350);
NSLog(@"image added:%@",imagestring);
[self addChild:sprite];
NSLog(@"count: %d",[shapesArray count]);
}
NSLog(@"pallete was completed");
[shapesArray removeLastObject];
NSLog(@"count:%d",[shapesArray count]);
}
@end
:
palleteOfShapes *newPallete = [[palleteOfShapes alloc]init];
[newPallete drawPallete];
私はこれらのスプライトは上に表示されますことを期待私のメインレイヤー、しかし彼らはしません。 NSLogはすべてのメッセージを表示しますが、スプライトは表示しません。
できれば、間違っていることを教えてください。ありがとうございます。
まあ、私はメインレイヤーでdrawPalleteを呼ぶと思っていますが、スプライトはメインレイヤーで作業してレイヤーに自分自身を描かなければならないと思うでしょう:)おそらく、それは馬鹿げた考えでした。あるクラスからこれらのスプライトをメインレイヤーに追加する方法を教えてください。 – repoguy
シーンを直接描いたり他のものを描いたりするためには、シーン内に物を持っていなければなりません。メインレイヤのinitや何らかの方法で "newPallete"を作成したら、それをメインレイヤ[self addChild:newPallete]に追加します。また、メインレイヤーをシーンに追加したことを確認してください。 – Kreiri
うわー、なぜ私はシーンに追加する必要はないと思ったのか分かりません.Dはすべて動作します、ありがとうございます。 – repoguy