2010-07-04 83 views
1

首先,我縮放了包含精靈的圖層。 現在我需要感應一個精靈的觸摸。 我曾嘗試如下,但不能達到目標 -如何在變焦狀態下檢測觸摸動作是否觸及精靈?

CGRect tRect= [[aSprite displayedFrame] rect]; 
    if(CGRectContainsPoint(tRect, touchedPosition)) 
{ 
    NSLog(@"touched:>> touch at (%f,%f)",touchedPosition.x,touchedPosition.y); 
    // Do something, maybe return kEventHandled; 
} 
else{ 
    NSLog(@"NOT touched: touch at (%f,%f)",touchedPosition.x,touchedPosition.y); 
} 

FYI:我已經使用cocos2d的框架

+0

我剛剛開始iPhone編程.. – Sadat 2010-07-04 08:08:49

回答

0

最後,我已經找到了解決辦法:),這裏是代碼

CGPoint location = [touch locationInView: [touch view]]; 
CGPoint convertedLocation = [[CCDirector sharedDirector] convertToGL:location]; 

CGPoint tapPosition = [self convertToNodeSpace:convertedLocation]; 

其中「自我」是精靈座一層我以前規定。該圖層正在監聽觸摸事件。

1

首先,你需要確保你從UITouch正確的位置。

CGPoint location = [touch locationInView:[touch view]]; 
location = [[CCDirector sharedDirector] convertToGL:location]; 

其次,你需要測試你的觸摸對精靈的邊界框。

if (CGRectContainsPoint([sprite boundingBox], location)) { 
    // The sprite is being touched. 
} 
+0

@Mitchell,我已經做到了。 – Sadat 2010-07-12 11:00:53

+0

@Mitchell,感謝您的回覆 – Sadat 2010-07-13 06:00:38

0

弗蘭克米切爾是正確的。另一種方法是將偵聽代碼添加到精靈本身,以便科科斯將爲您完成工作。如果實際被觸摸,它只會發送精靈ccTouchesBegan事件。

+0

感謝@cc,我會嘗試這種技術... – Sadat 2010-07-13 06:00:07