私はObjective-CでiOS用のボールスワイピングゲームを作成しています。スクリーンをスワイプしてボールを動かします。私はあなたがスワイプする場所の反対方向にボールが動くように設定しました。たとえば、私が下にスワイプして離すと、ボールは上に移動します。iOSのTouchesMovedで描くCGContextライン
CGContextを使ってボールが移動する方向を示すための線を作成しました。ラインはボールの中心(ball.center.x、ball.center.y)から指でスワイプするポイント(movePoint)まで開始します。私は画面をスワイプするときにmovePointに線を引くのではなく、逆方向に線を描くようにしています。たとえば、画面上をスワイプすると、上方向に線が引かれます。
私は座標系を使っていろいろ試してみましたが、スワイプした場所の反対方向を正しく指し示すことができません。これについては具体的なアプローチはありますか?
ありがとうございます。
- (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();
}
}
このリンクがお役に立てば幸いです。http://stackoverflow.com/questions/25150674/drawing-with-cgcontext –