Người đàn ông đi bộ ví dụ:
tôi đã xử lý chính xác cùng một công việc, nhưng tôi đã phải làm một con nhện chạy mà là 6 chân đi bộ và có 12 khung. Nó thực sự rất khó để làm và đã cho tôi vài tháng để hoàn hảo. Vấn đề là ví dụ về người thức dậy thường được thực hiện bằng cách thiết lập một loạt các khung ảnh (Chân đầu tiên, Chân cuối) thành thuộc tính animationImages của UIImageView. Sau đó, bạn bật và tắt hoạt ảnh cùng với nhân vật di chuyển sang phải và trái và bằng cách này tạo ra ảo ảnh về việc đi bộ. Bây giờ vấn đề lớn nảy sinh khi bạn muốn tạo ảo tưởng về gia tốc. Không có cách nào để thay đổi thời lượng hoạt ảnh DURING phát lại hoạt ảnh và đây là một trở ngại lớn mà rất khó khắc phục.
Đây là mã mà tôi sản xuất để khắc phục vấn đề này:
Ở đây bạn xác định một mảng với các khung chân đi bộ, khung hình mỗi bước.
animationImagesSpider = [NSArray arrayWithObjects:
[UIImage imageNamed:@"[email protected]"], [UIImage imageNamed:@"[email protected]"], [UIImage imageNamed:@"[email protected]"], [UIImage imageNamed:@"[email protected]"], [UIImage imageNamed:@"[email protected]"], [UIImage imageNamed:@"[email protected]"], [UIImage imageNamed:@"[email protected]"], [UIImage imageNamed:@"[email protected]"], [UIImage imageNamed:@"[email protected]"], [UIImage imageNamed:@"[email protected]"], [UIImage imageNamed:@"[email protected]"], [UIImage imageNamed:@"[email protected]"], nil];
Ở đây bạn đính kèm mảng đến UIImageView:
imgViewSpider = [[UIImageView alloc] initWithFrame:CGRectMake(200,410,100,145)];
imgViewSpider.animationImages = animationImagesSpider;
Bây giờ nếu bạn chỉ cần gọi [imgViewSpider startAnimating]; điều này sẽ bắt đầu hoạt ảnh ở tốc độ không đổi cho đến khi bạn dừng nó. Để khắc phục điều này tôi đã sử dụng một đệ quy mà đóng một phim hoạt hình ngắn cho mỗi bước và điều này cho phép điều chỉnh thời gian giữa mỗi bước sau:
- (void) spiderRun {
imgViewSpider.animationDuration= 0.51-(accSp/3.5);
[imgViewSpider setAnimationRepeatCount:222]; /// this is a dummy value that has no effect because animtion ends after the first frame
[imgViewSpider startAnimating];
[self performSelector:@selector(spiderRun) withObject:nil afterDelay: 0.5-(accSp/3.5)];
}
Bằng cách liên tục thay đổi giá trị accSp, tôi có thể kiểm soát tốc độ đi bộ trong đi bộ .
thực sự tôi nghĩ rằng anh ấy có nghĩa là dịch thuật, trong bản dịch toán học đang di chuyển một đối tượng đến một tọa độ khác nhau – MCKapur