0
iTapping이라는 30 초 이내에 사용자가 볼을 여러 번 터치 할 수있는 앱을 디자인했습니다. 게임에서, 사용자는 볼을 탭하기 위해 화면의 아무 곳이나 탭할 수 있습니다. 사용자가 볼을 탭하지 못할 수있는 '데드 스팟 (dead spots)'이 생길 수 있도록 앱 편집을 고려했습니다. 예를 들어, 공이 오른쪽 위 모서리에 있으면 (약 100 제곱 피트의 영역에서 말하십시오) 사용자가 공을 두 드리면 아무 일도 일어나지 않습니다. 이 코드는 어떻게 작성합니까? 이것이 명확하지 않은 경우 알려주십시오.화면 영역의 도청을 방지하는 방법
CGPoint Destination;
CGFloat xamt, yamt;
CGFloat speed21 = 40;
CGFloat xMin21 = 24;
CGFloat xMax21 = 297;
CGFloat yMin21 = 74;
CGFloat yMax21 = 454;
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *touch = [[event allTouches] anyObject];
CGPoint location = [touch locationInView:self.view];
if ([self Intersecting:location :Ball]) {
number21++;
int xRange = xMax21 - xMin21;
int yRange = yMax21 - yMin21;
int xRand = (arc4random() % xRange) + xMin21;
int yRand = (arc4random() % yRange) + yMin21;
Destination = CGPointMake(xRand, yRand);
xamt = ((Destination.x - Ball.center.x)/speed21);
yamt = ((Destination.y - Ball.center.y)/speed21);
if (number21 == 65) {
[timer invalidate];
}
}
}
-(BOOL)Intersecting:(CGPoint)loctouch:(UIImageView *)enemyimg {
CGFloat x1 = loctouch.x;
CGFloat y1 = loctouch.y;
CGFloat x2 = enemyimg.frame.origin.x;
CGFloat y2 = enemyimg.frame.origin.y;
CGFloat w2 = enemyimg.frame.size.width;
CGFloat h2 = enemyimg.frame.size.height;
if ((x1>x2)&&(x1<x2+w2)&&(y1>y2)&&(y1<y2+h2))
return YES;
else
return NO;
}