gpt4 book ai didi

java - 设计拼图

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:36:26 24 4
gpt4 key购买 nike

我打算开发一款拼图游戏。现在我已经有了图像和图像碎片,所以我们不需要算法来将图像切割成碎片。

在 UI 方面会有两个部分

  1. 第一部分以随机顺序包含损坏的图像。
  2. 第二部分包含完整图像的轮廓。用户需要将剪切的图像拖放到轮廓图像上。

我不确定如何在轮廓图像上匹配这些片段?关于算法或起始指针的任何想法?

最佳答案

允许用户将每一 block 拖到轮廓区域。允许工件以 90 度为增量旋转。

选项 1:如果一 block 拼图在整个拼图中的位置正确,角度正确,并且与另一 block 相连,则根据一些用户反馈将其卡入到位。拼图的外边缘可以算作与边缘 block 的连接。

选项 2:拼图组装时,邻居是相邻的拼图 block 。当拼图 block 混在一起时,它们仍然有相同的邻居。每个拼图 block (边缘 block 除外)都有四个邻居。

如果一个棋子以相对于那个邻居的正确角度靠近它的一个邻居,然后将它捕捉到另一个棋子。然后允许将两个(或更多)部件作为一个整体拖来拖去,就像对单个部件所做的那样。这将允许用户在任何区域组装拼图的子部分,就像玩物理拼图游戏一样,并将子部分相互连接起来。

您可以检查被移动到它的四个邻居的棋子,看看它们是否足够靠近以咬合在一起。如果一 block 的正确边缘与其邻居的正确边缘足够接近,并且角度相同,则它们匹配。

有几种方法可以检查相对位置。一种方法是临时旋转您正在测试的部件的坐标,使其直立,然后将所有所需邻居的坐标临时旋转到相同的角度。 (对所有旋转使用相同的旋转中心。)然后您可以轻松测试它们是否足够接近以匹配。如果用户正在拖动子组件,那么您将需要检查子组件中每个不匹配的边。

选项 2 更复杂也更现实。选项 1 可以进一步简化,方法是省略棋子的旋转并使每个棋子最初都具有适当的角度。

关于java - 设计拼图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4062148/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com