1

画面上で画像 (ヘリコプター) を移動するために加速度計を使用しています。ヘリコプターが前進すると uiimageview が 20 度回転し、ヘリコプターが後退すると uiimageview が -20 度回転するようにコードを追加しようとしています。ただし、回転が適用されると、uiimageview は元の開始位置 (ストーリー バードに配置した位置) に戻ります。理由はありますか?コードは次のとおりです。

-(void)outputAccelerationData:(CMAcceleration)acceleration

{
if (helicoptervalueX>1.5){
    helicopterrotation = 1;
   helicopter.transform = CGAffineTransformRotate(CGAffineTransformIdentity,0.34906585 ); 
    NSLog(@"Tilt forward");
} else if (helicoptervalueX < -1.5){
    helicopterrotation = -1;
     helicopter.transform = CGAffineTransformRotate(CGAffineTransformIdentity, -0.34906585);    
    NSLog(@"Tilt backward");}
else if (helicoptervalueX<=1.5 && helicoptervalueX>=-1.5){
    helicopterrotation = 0;
     helicopter.transform = CGAffineTransformRotate(CGAffineTransformIdentity, 0);
    NSLog(@"Helicopter flat");}




helicoptervalueX = -(acceleration.y*50.0)+calibrationx;
helicoptervalueY = (acceleration.x*50.0)+calibrationy;



int helicopternewX = (int)(helicopter.center.x + helicoptervalueX);

if (helicopternewX > 518) {
    helicopternewX = 518;}

if (helicopternewX < 50){
    helicopternewX = 50;}

int helicopternewY = (int)(helicopter.center.y - helicoptervalueY);

if (helicopternewY > 295){
    helicopternewY = 295;}


if (helicopternewY < 25){
    helicopternewY = 25;}

CGPoint helicopternewCenter = CGPointMake(helicopternewX, helicopternewY);

helicopter.center = helicopternewCenter;

}

4

1 に答える 1