ボールに速度があり、タッチポイントに向かって加速するアニメーションを設定しようとしています。まず、 http://www.youtube.com/watch? v = buFCoj2jqDk&feature = relmfuから、問題なく機能するチュートリアルからアプリを正常に転記しました。
しかし、速度の概念を導入しようとすると、ベクトル計算に失敗したように見えます。単純に2つのベクトルを互いに減算したかったのですが、以下の詳細オプションに進むまで、その構文を正しく理解できませんでした。
アプリは「ブレークポイント1.1」を提供します
以下の関連コード:
@interface ViewController : UIViewController {UIImageView *spritey; CGPoint vee; CGPoint acc;}
@property (nonatomic, retain) UIImageView *spritey;
@property (assign) CGPoint vee;
@property (assign) CGPoint acc;
@end
//.m
- (void)viewDidLoad
{
[super viewDidLoad];
spritey = [[UIImageView alloc] initWithImage: [UIImage imageNamed:@"cloud2.png"]];
[spritey setFrame:CGRectMake(60,60,50,50)];
[self.view addSubview:spritey];
vee=CGPointMake(0,0);
}
-(void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
UITouch *myTouch=[ touches anyObject];
[UIView beginAnimations:@"moveTo" context:NULL];
[UIView setAnimationDuration: 2.25];
[UIView setAnimationBeginsFromCurrentState:YES];
CGPoint newTarget=[myTouch locationInView:self.view];
vee=CGPointMake(vee.x+(newTarget.x-spritey.center.x)/10,
vee.y+(newTarget.y-spritey.center.y)/10);
spritey.center=CGPointMake(spritey.center.x+vee.x,spritey.center.y+vee.y);
//spritey.center=[myTouch locationInView:self.view];
[UIView setAnimationDelegate:self];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
[UIView commitAnimations];