2010-08-05 41 views
3

我知道如何做iPhone的動作已經在這裏問過一百萬次了,但我似乎無法找到任何有關Cocos2D加速計的有用信息。我發現的一切都涉及到使用視圖,我不認爲我在Cocos2D中使用任何視圖,如果我對他們隱藏我認爲。我想知道什麼時候在CCLayer類中發生了任何類型的搖動?如何使用Cocos2D檢測iPhone上的搖晃?

回答

11

我想通了。在圖層類中,您需要放置這些線條;

self.isAccelerometerEnabled = YES; 
[[UIAccelerometer sharedAccelerometer] setUpdateInterval:1/60]; 
shake_once = false; 

然後在圖層類中實現該函數;

-(void) accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration { 

float THRESHOLD = 2; 

if (acceleration.x > THRESHOLD || acceleration.x < -THRESHOLD || 
    acceleration.y > THRESHOLD || acceleration.y < -THRESHOLD || 
    acceleration.z > THRESHOLD || acceleration.z < -THRESHOLD) { 

    if (!shake_once) { 
     int derp = 22/7; 
     shake_once = true; 
    } 

} 
else { 
    shake_once = false; 
} 

} 

shake_once只是一個布爾值,用於阻止一次搖一次的註冊。

+0

謝謝!它像一個魅力! – 2011-02-22 15:23:35

+0

請注意,因爲您正在使用整數,因此「1/60」的值爲0。 (對於0.016結果,請試用'1.0f/60.0f') 另外'isAccelerometerEnabled'已棄用。使用'self.accelerometerEnabled'。 – Jonny 2013-04-11 07:57:34