所以我有一个在 iPhone 内置加速度计的帮助下移动的 block ,另一个随机出现在屏幕上的 block 。我正在尝试使用 if 语句来确定移动 block 是否轻敲或触摸不动的目标 block ,如果这样做,它将随机重新定位到屏幕上的另一个位置。除了确定两个坐标在任何给定点是否相等之外,一切正常。到此为止了..
编辑: *所以我删除了 xx & yy 变量并用 self.xVar 和 self.yVar 替换它们,这似乎有点工作,但非常粗略并停止了
edit2: **所以它删除 xx 和 yy 确实有帮助,但它只适用于 2-3 次点击,然后停止。
edit3 **意识到使用相同的 x OR y 变量并不是解决此问题的正确方法..
-(void) accelerometerUIAccelerometer *)accelerometer didAccelerateUIAcceleration *)acceleration
{
...
//Make the new point
CGPoint buttonNewCenter = CGPointMake(newX,newY);
Button.center = buttonNewCenter;
int xx = self.xVar;
int yy = self.yVar;
if (newX == xx || newY == yy) {
int randX = arc4random() % 320;
int randY = arc4random() % 548;
CGPoint randNewPlace = CGPointMake(randX, randY);
Rand.center = randNewPlace;
}
}
... ...
- (void)viewDidAppearBOOL)animated
{
[self awakeaccelerometer];
int randX = arc4random() % 320;
int randY = arc4random() % 548;
CGPoint randNewPlace = CGPointMake(randX, randY);
Rand.center = randNewPlace;
self.xVar = (randX+15);
self.yVar = (randY+15);
}
因此,打开函数随机确定目标 block 的位置,而另一个 block 根据加速度计在屏幕上自由移动。我正在尝试确定 if self.xVar || self.yVar == newX || newY
在任何给定时间。提前致谢!
我不确定您为什么要查看两个点是否在同一个位置,而不是查看两个矩形是否相交。点非常小。如果你想做的是查看一个点是否在一个矩形内,你可以使用CGRectContainsPoint
。 (参见苹果网站 here 上的讨论。)如果您想查看两个矩形是否相交(我认为您正在尝试这样做),请使用 CGRectIntersectsRect
。 (您可能需要先调用 CGRectMake。)
如果你真的想做数学,那么检查 (self.x+self.width
关于iphone - 创建我的第一个 iPhone 应用程序.. 重新定位 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15671673/
欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) | Powered by Discuz! X3.4 |