对不起,我不确定这个问题的术语,但我希望你能理解并帮助我。 (如果术语错误,请更正我以供将来参考。谢谢!)
我正在尝试为我的iOS游戏设置参数,以便当您点击屏幕的任一侧时,播放器将转向该侧。
虽然将播放器设置为整个屏幕但我只能朝一个方向移动,但是我的代码可以让播放器移动...
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
X = -7;
Player.image = [UIImage imageNamed:@"Player Left.png"];
}
需要添加的内容,以便只有当用户触摸屏幕的左侧时才运行此代码。
提前致谢,我希望你理解。 对于任何错误的术语,我感到非常抱歉。
答案 0 :(得分:3)
检查触摸点是否在屏幕的左侧..例如 -
if ([touches count] == 1) {
// one finger
CGPoint touchPoint = [[touches anyObject] locationInView:self.view];
if (touchPoint.x <= [UIScreen mainScreen].bounds.size.width*0.50) {
Player.image = [UIImage imageNamed:@"Player Left.png"];
}else{
Player.image = [UIImage imageNamed:@"Player Right.png"];
}
}
答案 1 :(得分:1)
通过定义CGRect
来定义您的“可反应”区域。然后尝试使用CGRectContainsPoint()
定义触摸是否在内部。这样的事情(未经测试):
CGRect reactable = CGRectMake(0, 0, 10, 10); // A square of 10 px
UITouch *touch = [[event allTouches] anyObject];
CGPoint touchLocation = [touch locationInView:self];
if (CGRectContainsPoint(reactable, touchLocation)
Player.image = [UIImage imageNamed:@"Player Left.png"];