次のコードを使用して、加速度計ベースのプロジェクトに取り組んでいます。
.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 を維持しています。何が問題なのですか? 何か不足していますか?