如何获得一个广场的角落

时间:2014-08-28 00:06:23

标签: ios objective-c iphone xcode sprite-kit

大家好我在spriteKit遇到了物理问题,所以我决定自己制作,我需要得到一个正方形的角落。我试过了

    _hero.position.x-_hero.size.width/2-_hero.size.height/2

我以为它给了我一个正方形的左下角,但是当我运行我的游戏时它没有按照我的预期行事。我正在做一个2D“超级马里奥星系”,这意味着我的玩家在小行星中以圆圈运行,事实是,我需要将角位置放在if()中,例如,它将检查玩家的右上角大于正方形的左下角,在这种情况下,我会设置一个BOOL来告诉程序玩家在广场下面,因为didBeginContact是错误的,我有很多问题。任何人的帮助都会很棒。

PD:我留下了我的游戏样本,它仍然非常原始,但希望你喜欢这个概念,并且可选地,任何反馈(好的或坏的)都是受欢迎的。

enter image description here

2 个答案:

答案 0 :(得分:0)

广场将有一个原点和一个框架。见下文。如果您试图找到每个角,从局部坐标系(正方形)到父坐标系convert可能更容易。

And object's coordinates

但是,我认为您的实际问题是关于碰撞检测。在这种情况下,制作每个对象的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