2010-11-25 6 views
0

こんにちは、私はiPhoneで非常に簡単なゲームを実装したいです。私はイメージとテキストを持っています。ユーザーが画像とテキストの間に線を引くと「正しい」と表示されます(iphone)非常にシンプルなIphoneゲーム

私が考えているのは、ユーザーが画面に触れるたびに、そのタッチした場所の位置(X、Yなど) (どのメソッドを呼び出して場所を取得するのですか?)次に黒い点を描画します。ユーザーが連続してスムーズに画面に触れると、線が形成されます。最後に、行の始点がイメージ内にあり、終点がテキスト内にあるかどうかを判断するだけで済みます。

私の考えがこのようなゲームを実装する正しい方法かどうかはわかりません。タッチする場所の座標を取得し、その特定の場所に黒い点を描く方法は?

ありがとうございます!

+0

:s/Iphone/iPhone。さらに、質問のタイトルの前に "(iphone)"を付ける必要はありません。それはタグのためのものです。本当に。 –

答えて

1

あなたはタッチがあなたのビューコントローラのtouchesMoved座標れることがあります。

- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event 
{ 
    UITouch *touch = [touches anyObject]; 
    CGPoint touch_point = [touch locationInView:self.view]; 
    NSLog(@"x: %.0f y: %.0f", touch_point.x, touch_point.y); 
} 

線を描画するには、ビューを追加し、drawRectで線を描画している:

- (void)drawRect:(CGRect)rect { 

    CGContextRef context = UIGraphicsGetCurrentContext(); 
    CGContextSetLineWidth(context, 1.0); 
    CGContextSetStrokeColorWithColor(context, [UIColor orangeColor].CGColor); 

    // ... 

    CGContextMoveToPoint(context, one_x, one_y); 
    CGContextAddLineToPoint(context, two_x, two_y); 
    CGContextStrokePath(context); 

    // ... 
} 

one_x one_y two_x two_xは2点の座標です。

0

これは、iPhone touchの委任の仕組みとまったく同じです。それはtouchesBegan:,touchesMoved:touchesEnded:を呼び出します。線を描画するには、次のコードが必要です。

CGContextRef context = UIGraphicsGetCurrentContext(); 
[current set]; 
CGContextSetLineWidth(context, 4.0f); 

for (int i = 0; i < (self.points.count - 1); i++) 
{ 
    CGPoint pt1 = POINT(i); 
    CGPoint pt2 = POINT(i+1); 
    CGContextMoveToPoint(context, pt1.x, pt1.y); 
    CGContextAddLineToPoint(context, pt2.x, pt2.y); 
    CGContextStrokePath(context); 
} 

そしてこのコードの助けを借りて、あなたはそれを作る準備ができています。助けが必要な場合は、これにコメントするか、別の質問をしてください。

CGPoint pt = [[touches anyObject] locationInView:self]; 
[self.points addObject:[NSValue valueWithCGPoint:pt]]; 
[self setNeedsDisplay]; 
関連する問題