“做某事”当一个图像靠近另一个图像时

发布于 2024-11-18 11:09:05 字数 78 浏览 1 评论 0原文

我有两个图像(image1 和 image2)。图像 2 在屏幕上移动。当图像 2 接近图像 1(20 像素)时,我想“做某事”。我该怎么做?

I have two image (image1 and image2). Image 2 is moving around the screen. I want to "do something" when image 2 is near (20pixels) of image1. How can I do this ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

好听的两个字的网名 2024-11-25 11:09:05

图片 2 无法移动,除非应用程序中的某些内容移动了它。在代码中找到移动图像 2 的位置,然后执行以下操作之一或类似操作:

  1. 计算到图像 1 的距离,如果小于 20 像素,则采取适当的操作。
  2. 向关心图像 1 和 2 之间距离的对象发送消息。
  3. 发布通知,通知所有关心图像 2 已移动的对象。
  4. 设置一个标志表明图像 2 已移动,并确保应用程序的其他部分定期检查该标志并执行正确的操作。

Image 2 can't move unless something in your app moves it. Find the place in your code where you move image 2, and then do one of the following, or something similar:

  1. Compute the distance to image 1 and take appropriate action if less than 20 pixels.
  2. Send a message to the object that cares about the distance between images 1 and 2.
  3. Post a notification informing any objects that care that image 2 has moved.
  4. Set a flag saying that image 2 has moved, and make sure some other part of your app periodically checks the flag and does the right thing.
绾颜 2024-11-25 11:09:05

创建一个框架,在 image1 的框架的每一侧添加 20 像素:

CGRect image1Frame = image1.frame;
CGRect collisionFrame = CGRectMake(image1Frame.origin.x-20.0, image1Frame.origin.y-20.0, image1Frame.size.width+20.0, image1Frame.size.height+20.0);

然后只需检查 image2 的框架是否与碰撞框架发生碰撞:

CGRectIntersectsRect(image2.frame, collisionFrame);

Create a frame that adds 20 pixel to each side of your image1's frame:

CGRect image1Frame = image1.frame;
CGRect collisionFrame = CGRectMake(image1Frame.origin.x-20.0, image1Frame.origin.y-20.0, image1Frame.size.width+20.0, image1Frame.size.height+20.0);

Then just check if the frame of image2 collides with collisionFrame:

CGRectIntersectsRect(image2.frame, collisionFrame);
爱她像谁 2024-11-25 11:09:05

您可以尝试使用当前图像大小 + 21 像素创建一个 CGRect,创建另一个图像的 CGRect,然后使用:

 CGRectIntersectsRect(CGRect1, CGRect2)

You can try to creating a CGRect with the current size of the Image + 21 pixels, create a CGRect of the other Image and then use:

 CGRectIntersectsRect(CGRect1, CGRect2)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文