我正在開發一個應用程序,其中有一個可拖動的對象。用戶可以在指定的路徑中拖動此對象,而不是在路徑之外。 爲了實現這一點,我不得不設置邊界條件,以便如果觸點超出了這個範圍,物體就不會移動。設置對象通過拖動對象遍歷路徑的邊界條件
我的問題是,我的對象大小可以說30 * 30。 現在,如果我從頭髮的上方觸摸對象,然後將其拖動到下方,它會給出一個值,但是如果我在下面的某個位置觸摸同一個對象,讓我們說他的下巴,然後將對象移動到相同位置我們移動了前一個。現在在這種情況下,觀點與前一個不同。 所以我不能理解我應該如何設置邊界條件,如果我設置了第一個值的條件,那麼在他的情況下,第二個接觸過程將不能移動,這是錯誤的,如果我設置第二個情況值,則第一個案例對象也能夠在邊界之下移動。 我不使用cocos 2D。它是簡單的ipad應用程序。
更多的瞭解,如果你碰他的左部分的綠色圓圈和走向正確的我現在已經添加了圖像,最後一個值是喜歡760,但如果你觸摸右側部分和向右移動那麼最後一點就是780點。如果垂直拖動對象,則會發生同樣的情況。
我的基本要求是,對象應該只移動到圖像中顯示的路徑之外,而不是在它之外。
- (void)touchesBegan:(NSSet*)touches withEvent:(UIEvent*)event {
// Retrieve the touch point
CGPoint pt = [[touches anyObject] locationInView:gamePice];
startLocation = pt;
}
- (void)touchesMoved:(NSSet*)touches withEvent:(UIEvent*)event
{
CGPoint pt1 = [[touches anyObject] locationInView:gamePice];
CGPoint pt = [[touches anyObject] locationInView:self.view];
NSLog(@"moved=%f|%f",pt.x,pt.y);
if (pt.x>=306 && pt.y>=148 && pt.x<=720 && pt.y<=175) { //these conditions how to set
CGRect frame = [gamePice frame];
frame.origin.x += pt1.x - startLocation.x;
frame.origin.y += pt1.y - startLocation.y;
[gamePice setFrame:frame];
}
}
請建議如何實現此功能或應遵循什麼方法。
üshudnt工作在點..而是你應該工作rects ..如果內部rect(gamepice)相交外部rect ..不允許..否則允許....檢查CGRect方法在這裏.. https://developer.apple.com/ library/mac /#documentation/graphicsimaging/reference/CGGeometry/Reference/reference.html – waheeda
你可以pl輕鬆提供我可以遵循的一個或兩個步驟代碼。 – Gypsa
我認爲你必須使用uiview的界限。 –