嗨,我正在尝试使用 iPhone 上的加速计制作一个简单的游戏。
所以我有一个名为enemyBlock 的 UIView 子类。我在屏幕上放了一些这样的东西。这些 block 一遍又一遍地使用 [UIView animateWithDuration:...] 进行扩展和收缩。我有一个 UIImageView 根据加速计数据移动 - 这就是播放器。
当玩家接触到敌人方 block 时,游戏应该重置。 我使用 CGRectIntersectsRect(player.frame, heavenlyblock.frame) 来检测是否发生了命中。但这的行为非常奇怪,因为只有当敌人方 block 没有动画时才会发生命中,否则玩家可以直接穿过它们。
有什么线索可以解释为什么会发生这种情况吗?
最佳答案
不完全是答案,但我建议使用 cocos2d如果你正在写一个游戏。这是一个用 Objective C 编写的很棒的游戏引擎,我自己也用过。您创建 Sprite 的 2D 场景图。然后,您编写一个定期调用的更新方法,例如每秒30次。在此更新方法中,您可以增量更新每个敌人和玩家 Sprite 的位置,并使用 CGRectIntersectsRect 进行碰撞检查以检测碰撞。希望这会有所帮助。
关于iphone - CGRectIntersectsRect 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7228264/