2011-08-29 95 views
3

我想確定精靈是否在屏幕上或不在cocos2d中。確定一個精靈是否在屏幕上或不在cocos2d

上午使用代碼這樣的事情。

CGSize winSize = [CCDirector sharedDirector].winSize; 

    if (_SmallBlueAlien1.position.x> 0 || _SmallBlueAlien1.position.x > winSize.width || _SmallBlueAlien1.position.y> 0 || _SmallBlueAlien1.position.y > winSize.height) 
    { 
//Sprite is not in the screen) 
} 

但無法正常工作。我錯了。 糾正我

回答

1

除非您更改了sprite的錨點,否則只會測試sprite的一半是否在屏幕上。要解決此問題,請檢查是否

_SmallBlueAlien1.position.x> [_SmallBlueAlien1 contentSize] .texture.width/2;

您可以按照此過程進行所有其他交互。

//編輯

由於phix23指出,這並不佔旋轉或縮放的,但如果你正在做的那些都應該工作。

+0

你也應該把規模和旋轉考慮爲 – Felix

+0

上午質感「沒有成員名爲」紋理「」 – Srinivas

+0

@Srinivas你可以做[_SmallBlueAlien1 contentSize] .width/2 – ScottPetit

0

無論coco中'position'的語義如何,對於x和y,'''應該是'<',假設您對.position屬性的解釋成立。然而,'精靈'位置可能是指一個封閉對象,因此即使你的測試被糾正了,它仍然不會給你想要知道的東西('屏幕上可見')。