2013-09-24 22 views
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); 
    } 
} 
+0

这是一个很好的开始编程逻辑练习。你应该戴上自己的思维上限并自己梳理。提示:有两个部分:1.你如何做运动; 2.你如何做边界检查。 –

回答

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是蝴蝶移动的速度。

相关问题