0

我为 iOS 游戏编写了一个简单的动画,我正在尝试将其转换为 Mac OS。

这是我的 iOS 代码

NSMutableArray *imgArr = [[[NSMutableArray alloc] init] autorelease];

    for(int i = 1; i < 6 + 1; i++) {
        [imgArr addObject: [UIImage imageNamed:[NSString stringWithFormat:@"%@%d.png", filePrefix, i]]];
    }

    UIImageView * animation = [[UIImageView alloc] initWithFrame:rect];
    animation.animationImages = imgArr;

    animation.animationRepeatCount = 1;
    [animation startAnimating];

    [self.view addSubview:animation];

至于可可,这部分给出了错误。我该如何解决这个问题?

//animation.animationImages = imgArr;

//animation.animationRepeatCount = 1;
//[animation startAnimating];

带计时器的新代码

for(int i = 0; i < 6; i++)
    [NSTimer scheduledTimerWithTimeInterval:1
                                     target:self
                                   selector:@selector(anim)
                                   userInfo:nil
                                    repeats:NO];


- (void)anim {
    ++num;


    NSImageView *animation = [[NSImageView alloc] initWithFrame:NSMakeRect(shipPosition.x, shipPosition.y, shipSize.width, shipSize.height)];

    [animation setImage: [NSImage imageNamed:[NSString stringWithFormat:@"explosprite%d.png", num]] ];
    [objectView addSubview:animation];

    [animation release];
}
4

1 回答 1

1

UIImageView 在 Cocoa 中根本不存在。Cocoa 并没有像您在这里尝试做的那样真正支持精灵动画。AFAIK 最常见的方法是设置一个 NSTimer 并在计时器触发时适当地更新图像。

您还可以创建一个处理动画图像的自定义 CALayer 子类。我不确定这是否一定更容易,但这是一种选择。

于 2012-12-28T01:20:10.580 回答