我有以下问题。我的子视图中有两个对象。其中之一是能够在地砖上移动的玩家。另一个是墙。播放器不应能够在墙上移动或在墙上移动。现在,墙壁被视为一无所有或无背景(不是障碍)。
我的一个想法是保存墙壁的所有坐标,并检查玩家的坐标是否与墙壁的坐标匹配,然后撤消移动。在我看来,这个想法效率很低,可能可以做得更好。
还有其他解决方案吗?

最佳答案

如果是游戏,请使用Sprite Kit,该工具可为您提供碰撞检测和自动“弹跳”行为。如果是瞬时动画,请使用UIKit Dynamics,它可以为您提供碰撞检测和自动的“弹跳”行为。否则,您只需要自己实现碰撞检测(通过查看一个视图的框架是否与另一个视图的框架相交)并自己执行“反弹”即可。

08-15 20:56