菜鸟教程小白 发表于 2022-12-12 09:54:51

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]
查看完整版本: iphone - 创建我的第一个 iPhone 应用程序.. 重新定位 block