2

こんにちは皆さん、加速度計ベースの振り子アニメーションを実装しています。しかし、それは奇妙な振る舞いをします。以下は私のコードです。私が間違っている場所を見つけるのを手伝ってください。

#import "DemoViewController.h"

@interface DemoViewController ()

@end

@implementation DemoViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    UIAccelerometer* theAccel=[UIAccelerometer sharedAccelerometer];
    theAccel.updateInterval=1/50.0f;
    theAccel.delegate=self;
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}
-(void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration{
    CGFloat x= acceleration.x;
    self.imPendulum.transform=CGAffineTransformRotate(self.imPendulum.transform,-x);
}
@end
4

1 に答える 1

1

まず、振り子の支点が回転するのではなく揺れるように、アンカー ポイントを作成します。

まずそれを試してください。次に、acceleration.x を CGFloat x に変換する係数 (またはより微妙な式) を作成する必要があると思います。

おそらく最も重要なことは、ここでアニメーション化するのではなく、変換を実行していることです。これは非常に異なります。アイテムを新しい場所に移動するだけで、ポイント A からポイント B にゆっくりと移動するわけではありません。そのためには、変換をアニメーション ブロック内に配置する必要があります。

上記の 3 つのことを試してみると、道に熱中する必要があり、それは単なる詳細になります。

于 2014-05-20T19:32:53.623 に答える