2017-02-24 121 views
0

我在objective-C中爲iOS創建了一個滑球遊戲,其中您滑動屏幕並移動球。我已經設置好了,讓球沿着你刷卡的方向相反的方向移動。例如,如果我向下滑動並釋放,球就會向上移動。在iOS中使用TouchesMoved繪製CGContext Line

我創建了一行來顯示使用CGContext移動球的方向。該線從球的中心(ball.center.x,ball.center.y)開始到用手指滑動的點(movePoint)。當我滑動屏幕時,我試圖讓它畫出來,而不是讓它畫一條線來移動Point,它會在相反的方向畫一條線。例如,如果我在屏幕上向下滑動,則會向上繪製一條線。

我已經試過擺弄座標系,但我似乎無法正確地指向與我滑動的方向相反的方向。有什麼特別的方法可以解決這個問題嗎?

謝謝。

這是我touchesMoved功能:

- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event { 
    UITouch *touch = [touches anyObject]; 
    movePoint = [touch locationInView:self.view]; 

    if (CGRectContainsPoint([ball frame], firstPoint)) { 
     _contextImage.hidden = NO; 
     UIGraphicsBeginImageContext(self.view.frame.size); 
     CGContextRef context = UIGraphicsGetCurrentContext(); 
     CGContextSetLineWidth(context, 2); 
     CGContextSetStrokeColorWithColor(context, [UIColor whiteColor].CGColor); 
     CGContextMoveToPoint(context, ball.center.x, ball.center.y); 
     CGContextAddLineToPoint(context, movePoint.x, movePoint.y); 
     CGContextStrokePath(context); 

     self.contextImage.image = UIGraphicsGetImageFromCurrentImageContext(); 
     UIGraphicsEndImageContext(); 
    } 
} 
+0

我希望這個鏈接可能會幫助你http://stackoverflow.com/questions/25150674/drawing-with-cgcontext –

回答

0

好了,從球的中心到觸摸位置Δ-X將movePoint.x - ball.center.x。另一種方法是,觸摸位置的X座標是ball.center.x + (movePoint.x - ball.center.x),對不對?那麼,相反方向的點是通過減去而不是加上(或者換句話說,通過否定Δ-X)來計算的:ball.center.x - (movePoint.x - ball.center.x)

Y位置也是如此:ball.center.y - (movePoint.y - ball.center.y)

所以,畫你的線路到那裏。