0

次のコードを使用して、加速度計ベースのプロジェクトに取り組んでいます。

.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 を維持しています。何が問題なのですか? 何か不足していますか?

4

2 に答える 2

0

私もcocos2dゲームで同様の問題に直面しました。それから私はこのように従いました。

この質問の答えを参照してください:COCOS2Dの加速度計

于 2012-11-02T04:52:45.980 に答える
0

私はもう COCOS2D に詳しくありませんが、どこかに加速度計のデリゲートを設定すべきではありませんか? 例えば

 self.isAccelerometerEnabled = YES;  
[[UIAccelerometer sharedAccelerometer] setUpdateInterval:1/60];  
[[UIAccelerometer sharedAccelerometer] setDelegate:self];
于 2012-11-02T03:44:49.090 に答える