2012-05-04 95 views
0

所以我在我的應用程序中需要替換精靈的圖像,我想我知道該怎麼做,但我在實現它時遇到了麻煩。基本上,我正在做一個多米諾骨牌遊戲,我需要能夠翻轉多米諾骨牌,所以你可以看到數字。如何從可變對象數組中獲取NSString值?

我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]; 

但這只是導致程序崩潰。你能爲我指出正確的方向嗎?

回答

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

我想使用此代碼將解決你的東西...檢查語法..希望這會有所幫助.. :)

+0

驚人的你怎麼能在東西小時盯着,而忽略這麼簡單的東西。感謝您的快速幫助! – PWiggin

+0

它只是在cocos2d .. 2年的經驗問題:P –