0

だから私はスプライトの画像を置き換える必要がある私のアプリのポイントにいて、それを行う方法を知っていると思いますが、それを実装するのに問題があります. 基本的に、私はドミノ ゲームを作っています。ドミノをひっくり返して数字を確認できるようにする必要があります。

私の domino.h ファイルから始めます....

#import <Foundation/Foundation.h>
#import "cocos2d.h"

@interface Domino : CCSprite {
    int int_leading;
    int int_trailing;
    int int_suitrank;
    int int_playerid;

    NSString *str_tilename;
    NSString *str_mirrortilename;    
}


@property  int int_leading,int_trailing, int_playerid, 

@property(nonatomic, retain) NSString *str_tilename;
@property(nonatomic, retain) NSString *str_mirrortilename;

-(void) print;
-(void) setTileName: (NSString *) theTileName;
-(void) setMirrorName: (NSString *) theMirrorName;
-(NSString *) str_tilename;
-(NSString *) str_mirrortilename;

@end

そして私の.mファイル...

#import "Domino.h"

@implementation Domino

@synthesize int_leading,int_trailing, str_tilename, str_mirrortilename, int_playerid;

-(void) print     { 
    NSLog (@"%i/%i", int_leading, int_trailing);}

-(void) setTileName: (NSString *) theTileName;
{
    str_tilename=[[NSString alloc] initWithString: theTileName];
}

-(void) setMirrorName: (NSString *) theMirrorName;
{
    str_mirrortilename=[[NSString alloc] initWithString: theMirrorName];
}

-(NSString *) str_tilename
{
    return str_tilename;
}

-(NSString *) str_mirrortilename
{
    return str_mirrortilename;
}
@end

最後に、私のゲームレイヤーで...

Domino *d06 =[[Domino alloc] initWithSpriteFrameName:@"blank.png"];
TileName= @"0-6.png";
MirrorName= @"6-0.png";
[d06 setTileName: TileName];
[d06 setMirrorName: MirrorName];
d06.int_leading=0;
d06.int_trailing=6;

この時点で、すべてのドミノを大きな変更可能な配列にまとめて追加します。この配列は、プレイヤーがまだ選択できるドミノを追跡します。私が抱えている問題は、可変配列から「TileName」を引き出す方法が見つからないか、見つかったが理解できなかったことです。

私がForループにいる場合、コードは次のようになるはずです

 NSString *temp1=[[[movableSprites objectAtIndex:i]valueForKey:@"str_tilename"]string];

しかし、これはプログラムがクラッシュするだけです。正しい方向に私を向けることができますか?

4

1 に答える 1

1
 NSString *temp1=[(Domino *)[movableSprites objectAtIndex:i] str_tilename];

このコードを使用すると問題が解決すると思います...構文を確認してください..これがお役に立てば幸いです..:)

于 2012-05-04T06:18:01.040 に答える