大家好我在spriteKit遇到了物理问题,所以我决定自己制作,我需要得到一个正方形的角落。我试过了
_hero.position.x-_hero.size.width/2-_hero.size.height/2
我以为它给了我一个正方形的左下角,但是当我运行我的游戏时它没有按照我的预期行事。我正在做一个2D“超级马里奥星系”,这意味着我的玩家在小行星中以圆圈运行,事实是,我需要将角位置放在if()
中,例如,它将检查玩家的右上角大于正方形的左下角,在这种情况下,我会设置一个BOOL
来告诉程序玩家在广场下面,因为didBeginContact
是错误的,我有很多问题。任何人的帮助都会很棒。
答案 0 :(得分:0)
广场将有一个原点和一个框架。见下文。如果您试图找到每个角,从局部坐标系(正方形)到父坐标系convert可能更容易。
但是,我认为您的实际问题是关于碰撞检测。在这种情况下,制作每个对象的CGRect
,然后使用CGRectIntersectsRect(rect1,rect2)
答案 1 :(得分:0)
twodayslate有一些很好的信息,但我想我会补充说,有一些非常酷的CGRect API,我不知道直到最近才可用。考虑一下这个矩形:
CGRect rect = CGRectMake(100, 100, 100, 200);
使用以下方法将返回一些不错的方便结果:
CGRectGetWidth(rect) --> 100
CGRectGetHeight(rect) --> 200
CGRectGetMaxX(rect) --> 200
CGRectGetMaxY(rect) --> 300
这与大多数人使用的相比:
rect.size.width
rect.size.height
rect.origin.x + rect.size.width
rect.origin.y + rect.size.height
rect.origin.x + rect.size.width