2013-09-24 21 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是蝴蝶移動的速度。

相關問題