2012-11-02 109 views
0

我一直使用此代碼工作的一個基於加速度計的項目:Cocos2d加速度計問題?

.H

{ 
CCSprite *donk; 

float movement; 

} 

.M

-(id) init 
{ 

if((self=[super init])) { 


donk = [CCSprite spriteWithFile:@"fe1.png" rect:CGRectMake(0, 0, 50, 50)]; 
donk.position = ccp (240,75); 
[self addChild:donk]; 


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

} 
    return self; 
} 


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

float deceleration = .1f; 
float sinsitivity = 10.0f; 

float acelx = +acceleration.y; 
movement = movement * deceleration + acelx * sinsitivity; 

} 

- (void)update:(ccTime)delta { 

CCLOG(@"Position: %f", donk.position.x); 
if (donk.position.x > 0 && donk.position.x < 480) { 

donk.position = ccp(donk.position.x + movement, donk.position.y); 
} 

if (donk.position.x < -55) { 


    donk.position = ccp(50, donk.position.y); 
} 

if (donk.position.x > 430) { 

    donk.position = ccp(430, donk.position.y); 
} 

} 

真正奇怪的是它工作在一個項目,但我複製粘貼到另一個,現在它不起作用。精靈在屏幕上,但它不移動,CCLOG保持x值爲240.什麼錯誤?我錯過了什麼嗎?

回答

0

我不再在COCOS2D上,但不應該在那裏設置acellerometer代表嗎?例如

self.isAccelerometerEnabled = YES; 
[[UIAccelerometer sharedAccelerometer] setUpdateInterval:1/60]; 
[[UIAccelerometer sharedAccelerometer] setDelegate:self]; 
+0

我試了一下,有點工作,但它只是走得很慢左,難道不走的權利可言,檢查了我的代碼應該仍然是一些與加​​速度計 –

0

我在cocos2d遊戲中也遇到類似的問題。然後我按照這樣的方式。

參考答案這樣一個問題:ACCELEROMETER IN COCOS2D