iphone - 创建我的第一个 iPhone 应用程序.. 重新定位 block
<p><p>所以我有一个在 iPhone 内置加速度计的帮助下移动的 block ,另一个随机出现在屏幕上的 block 。我正在尝试使用 if 语句来确定移动 block 是否轻敲或触摸不动的目标 block ,如果这样做,它将随机重新定位到屏幕上的另一个位置。除了确定两个坐标在任何给定点是否相等之外,一切正常。到此为止了..</p>
<p><strong>编辑:</strong> *<em>所以我删除了 xx & yy 变量并用 self.xVar 和 self.yVar 替换它们,这似乎有点工作,但非常粗略并停止了</em></p>
<p><strong>edit2:</strong> **所以它删除 xx 和 yy 确实有帮助,但它只适用于 2-3 次点击,然后停止。</p>
<p><strong>edit3</strong> **意识到使用相同的 x OR y 变量并不是解决此问题的正确方法..</p>
<pre><code>-(void) accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)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;
}
}
</code></pre>
<p>...
...</p>
<pre><code>- (void)viewDidAppear:(BOOL)animated
{
;
int randX = arc4random() % 320;
int randY = arc4random() % 548;
CGPoint randNewPlace = CGPointMake(randX, randY);
Rand.center = randNewPlace;
self.xVar = (randX+15);
self.yVar = (randY+15);
}
</code></pre>
<p>因此,打开函数随机确定目标 block 的位置,而另一个 block 根据加速度计在屏幕上自由移动。我正在尝试确定 <code>if self.xVar || self.yVar == newX || newY</code> 在任何给定时间。提前致谢!</p></p>
<br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
<p><p>我不确定您为什么要查看两个点是否在同一个位置,而不是查看两个矩形是否相交。点非常小。如果你想做的是查看一个点是否在一个矩形内,你可以使用<code>CGRectContainsPoint</code>。 (参见苹果网站 <a href="https://developer.apple.com/library/mac/#documentation/graphicsimaging/reference/CGGeometry/Reference/reference.html" rel="noreferrer noopener nofollow" title="here">here</a> 上的讨论。)如果您想查看两个矩形是否相交(我认为您正在尝试这样做),请使用 <code>CGRectIntersectsRect</code>。 (您可能需要先调用 CGRectMake。)</p>
<p>如果你真的想做数学,那么检查 <code>(self.x+self.width<new.x or new.x+new.width<self.x or self.y+self.height <new.y 或 new.y+new.height<self.y)</code> </p></p>
<p style="font-size: 20px;">关于iphone - 创建我的第一个 iPhone 应用程序.. 重新定位 block ,我们在Stack Overflow上找到一个类似的问题:
<a href="https://stackoverflow.com/questions/15671673/" rel="noreferrer noopener nofollow" style="color: red;">
https://stackoverflow.com/questions/15671673/
</a>
</p>
页:
[1]