2012-11-02 5 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에서 더 이상은 아니지만, 거기에 어딘가에서 대리점 대리인을 설정해서는 안됩니까? 예 :

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

나는 그것을 시도, 그것은 종류의 일을하지만, 그것은 단지 왼쪽으로 매우 느리게 이동하고 오른쪽에있는 모든 이동 wouldnt가, 내 코드는 여전히 가속도계 뭔가해야 확인 –

0

나도 cocos2d 게임에서 비슷한 문제에 직면했습니다. 그 때 나는이 방법을 따랐다.

이 질문에 대답을 참조하십시오 ACCELEROMETER IN COCOS2D