nên phiên bản hiện tại của tôi trông như thế này: Animation Movieđiểm animate nhiều lần và tự nhiên hơn
tôi là khá mới để lõi-hình động, vì vậy những gì tôi cố gắng để đạt được là có nhiều điểm giống như hiện tại, di chuyển từ hộp bên trái ở các góc độ khác nhau, chiều cao và tốc độ ra khỏi nó, giống như một máy bóng quần vợt.
vấn đề đầu tiên là, rằng tôi "quả bóng" không giống như nó được nắm lấy từ lực hấp dẫn và cũng là tốc độ lúc đầu là không đủ nhanh.
cũng, cách thực hiện hoạt ảnh này nhiều lần với khoảng cách thay đổi giữa đầu.
nếu có điều gì đó không rõ ràng, XIN VUI LÒNG để lại nhận xét.
mã hiện tại của tôi:
- (void)loadView {
[super loadView];
self.view.backgroundColor = [UIColor lightGrayColor];
CGPoint startPoint = CGPointMake(20, 300);
CGPoint endPoint = CGPointMake(300, 500);
UIBezierPath *trackPath = [UIBezierPath bezierPath];
[trackPath moveToPoint:startPoint];
[trackPath addQuadCurveToPoint:endPoint controlPoint:CGPointMake(endPoint.x, startPoint.y)];
CALayer *point = [CALayer layer];
point.bounds = CGRectMake(0, 0, 20.0, 20.0);
point.position = startPoint;
point.contents = (id)([UIImage imageNamed:@"point.png"].CGImage);
[self.view.layer addSublayer:point];
CAKeyframeAnimation *anim = [CAKeyframeAnimation animationWithKeyPath:@"position"];
anim.path = trackPath.CGPath;
anim.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseOut];
anim.repeatCount = HUGE_VALF;
anim.duration = 2.0;
[point addAnimation:anim forKey:@"movepoint"];
CALayer *caseLayer = [CALayer layer];
caseLayer.bounds = CGRectMake(0, 0, 140.0, 150.0);
caseLayer.position = startPoint;
caseLayer.contents = (id)([UIImage imageNamed:@"case.png"].CGImage);
[self.view.layer addSublayer:caseLayer];
}
tôi đề nghị bạn nên xem xét sử dụng [cocos2d/Box2D] (http://www.cocos2d-iphone.org/) để chạy "hoạt hình của bạn "như một mô phỏng vật lý. Đó là những gì nó có vẻ như nó được cho là, nếu bạn muốn trọng lực thực tế và các chuyển động của hạt. – aroth
tôi nghĩ rằng tôi không cần sự phụ thuộc như vậy. nó chỉ dành cho một lượt xem (và không quan trọng) trong ứng dụng của tôi. – choise
Vì bạn đang cố gắng kết hợp vật lý cơ bản với quả bóng, sẽ sử dụng CADisplayLink và làm động viên bóng liên tục thay đổi vị trí của nó có thể chấp nhận được không? Có ai có bất cứ điều gì chống lại giải pháp này? –