0

我试图弄清楚如何将图像保持在框架的宽度和高度内。现在它只是环绕。我更愿意创造一些留在框架内并在内部反弹的东西。

-(void) moveButterfly {
    bfly.center = CGPointMake(bfly.center.x + bfly_vx, bfly.center.y + bfly_vy);

    if(bfly.center.x > frameWidth)
    {
        bfly.center = CGPointMake(0, bfly.center.y + bfly_vy);
    }
    else if (bfly.center.x < 0)
    {
        bfly.center = CGPointMake(frameWidth, bfly.center.y + bfly_vy);
    }

    if(bfly.center.y > frameHeight)
    {
        bfly.center = CGPointMake(bfly.center.x + bfly_vx, 0);
    }
    else if (bfly.center.y < 0)
    {
        bfly.center = CGPointMake(bfly.center.x + bfly_vx, frameHeight);
    }
}
4

1 回答 1

0
-(void)moveButterfly{
    static int dx = 1;
    static int dy = 1;
    if (bfly.frame.origin.x >= self.view.bounds.size.width - bfly.bounds.size.width) {
        dx = -dx;
    }
    if (bfly.frame.origin.y >= self.view.bounds.size.height - bfly.bounds.size.height) {
        dy = -dy;
    }
    if (bfly.frame.origin.x <= 0) {
        dx = -dx;
    }
    if (bfly.frame.origin.y <= 0) {
        dy = -dy;
    }
    CGPoint point = bfly.center;
    point.x += dx;
    point.y += dy;
    bfly.center = point;
}

使用 NSTimer 以您想要更新位置的速率继续调用此函数。这里 dx 和 dy 是蝴蝶移动的速度。

于 2013-09-24T19:56:13.300 回答