(iphone)一款非常简单的Iphone游戏

时间:2010-11-25 03:22:34

标签: iphone drawing

您好我想在iphone上实现一个非常简单的游戏。我有图像和文字。如果用户在图像和文本之间画一条线,则表示“正确”

现在我在想的是,无论何时用户触摸屏幕,我都会得到该触摸点的位置(如X,Y)(调用哪种方法来获取位置?)然后我会画一个黑点那里。如果用户连续且平滑地触摸屏幕,则将形成一条线。最后,我只需要判断线的起点是否位于图像内,终点是否位于文本中。

我不知道我的想法是否是实现这种游戏的正确方法。如果是如何获得触摸点的坐标并在该特定位置画一个黑点?

感谢您的帮助!

2 个答案:

答案 0 :(得分: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是两点的坐标..

答案 1 :(得分: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];