2011-05-02 78 views
0

我正在尋找一種方法來查找CGSprite變量的文件名,然後在IF語句中使用它。就像這樣:Cocos2d sprite文件查找

if(target.spritefilename?? == @"Car1.png") 
{ 
    target = [CCSprite spriteWithFile:@"Car1_dead.png" rect:CGRectMake(0, 0, 37, 76)]; 
} 

回答

2
if([target.spritefilename isEqualtoString:@"Car1.png"]) 

是什麼,我猜你正在尋找。

0

將精靈名稱存儲在數組中,並檢查當前精靈名稱是否與數組中的名稱匹配。

if([image_array containsObject:@"car.png"]) 
{ 
NSLog(@"Image Found"); 
} 

希望這有助於!

1

您可以使用isEqualtoString進行字符串比較。

if([target.spritefilename isEqualtoString:@"Car1.png"]) 

對於NSString

3

我不確定你爲什麼要這樣做。但就我猜測你的目的而言,我想建議一種可供選擇的方法來識別你的不同精靈。

sprite中存在一個「userData」屬性(從父項繼承),您可以使用它來存儲自定義數據。所以當你創建你的精靈時,你也應該把這個標識賦給userData屬性。

像你的情況,當你第一次創建你的「目標」的精靈,你就可以設置「target.userData =」

之後,您可以檢查是否target.userData等於您所需的文件名。

這是將自定義數據存儲在您的精靈中的正確方法。

我希望它有幫助。

+0

看看有什麼我需要知道是如何找到什麼車撞到玩家。我一次至少有6輛車在地圖上,並且需要知道如何找到撞上他的車,改變它的精靈,並且與玩家精靈一樣 – user636915 2011-05-02 22:06:41

+2

我假設你已經實施了「碰撞檢測」邏輯。所以當你製作6輛車併爲每輛車裝載你的精靈。您還應該將fileName或其他標識的(例如Car-ID)放在userData字段中。因此,無論何時您的對象「碰撞」,您都可以檢查object.userData ==「car-1」,那麼您應該在該對象中加載「car-1-dead」精靈。如果您仍然感到困惑,請告訴我您是如何加載精靈以及如何檢測碰撞,以便我可以根據您的代碼進行解釋。 – Tayyab 2011-05-03 06:15:16

0

如果這樣做的目的只是確定你可以簡單地做它的精靈使用精靈的標記屬性。

像設定精靈一個TAF同時簽字或創建精靈作爲

CCSprite *spr1=[CCSprite spriteWithFile:@"1.png"]; 
spr1.tag=1; 

CCSprite *spr2=[CCSprite spriteWithFile:@"2.png"]; 
spr2.tag=2; 

,並同時獲得在特定事件中使用精靈獲取標記值

if([(CCSprite*)tagetSprite tag]==1) 
{ 
} 
else if([(CCSprite*)tagetSprite tag]==2) 
{ 
}