2012-09-15 20 views
0

您好設定區域內移動的對象我有一個對象,我可以觸摸移動,但我需要它只能在一組區域移動,以便從:在Xcode

X 0至320和 y 0到200

player.center = [myTouch locationInView:self.view];

什麼想法?

這是如此,如果用戶試圖將它移出這個區域,它只是掛在外邊緣。

回答

0

這裏的代碼實際上很簡單,你只需要檢測其是否超過了界限,如果有,正確的它。假設player.center有點像一個NSPoint,代碼可能是這樣的:

if(player.center.x <= 0){ 
    player.center.x = 0; 
}else if(player.center.x >= 200){ 
    player.center.x = 200; 
} 
if(player.center.y <= 0){ 
    player.center.y = 0; 
}else if(player.center.y >= 300){ 
    player.center.y = 300; 
} 

如果你想的邊緣,無法通過雙方,那麼你可能只是這樣做:

if(player.center.x - player.xSize/2 <= 0){ 
    player.center.x = 0 + player.xSize/2; 
} 

而對於另一個x邊界和y邊界也是如此。

0

您可以使用MIN和MAX限制一個值。

CGFloat minX = 0.0f; 
CGFloat maxX = 320.0f; 
CGFloat minY = 0.0f; 
CGFloat maxY = 200.0f 

CGPoint location = [myTouch locationInView:self.view]; 
CGPoint center = CGPointMake(MIN(minX, MAX(maxX, location.x)), 
          MIN(minY, MAX(maxY, location.y))); 
player.center = center; 
0

你可能想要做這樣的事情:

CGRect validRect = CGRectMake(0.0, 0.0, 320.0, 200.0); 
CGPoint touchPoint = [myTouch locationInView:self.view]; 
if(CGRectContainsPoint(validRect, touchPoint) { 
    player.center = touchPoint; 
}