Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/119.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 带角度的CGRect_Ios_Cocos2d Iphone - Fatal编程技术网

Ios 带角度的CGRect

Ios 带角度的CGRect,ios,cocos2d-iphone,Ios,Cocos2d Iphone,我有一行,这是一个精灵使用此代码 CGPoint diff = ccpSub(startLocation, endLocation); float rads = atan2f( diff.y, diff.x); float degs = -CC_RADIANS_TO_DEGREES(rads); float dist = ccpDistance(endLocation, startLocation); CCSprite *line = [CCSprite spriteWithFile:@"lin

我有一行,这是一个精灵使用此代码

CGPoint diff = ccpSub(startLocation, endLocation);
float rads = atan2f( diff.y, diff.x);
float degs = -CC_RADIANS_TO_DEGREES(rads);
float dist = ccpDistance(endLocation, startLocation);
CCSprite *line = [CCSprite spriteWithFile:@"line.png"];
[line setAnchorPoint:ccp(0.0f, 0.5f)];
[line setPosition:endLocation];
[line setScaleX:dist / line.boundingBox.size.width];
[line setRotation: degs];

line.tag = 1;
[_lines addObject:line];
[self addChild:line];
现在,在我的碰撞检测代码中,我使用以下代码创建CGRect:

        CGRect lineRect = CGRectMake(
        line.position.x - (line.contentSize.width/2), 
        line.position.y - (line.contentSize.height/2), 
        line.contentSize.width, 
        line.contentSize.height);
这当然是错误的,因为这条线是用一个角度

我试着比较一个长方形,一个正方形精灵,和这个长方形。 这个想法是一个角色在移动,玩家可以画一条线,如果角色碰到线,它会朝相反的方向反弹

我有角度,线一侧的x&y位置和线的长度。 如何获取线另一侧的其他x&y位置

希望你们能帮我


提前谢谢

您可能应该在文档中查找CgRectApplyAffineTransformMakeTransformTransform、CgAffineTransformMakeTransform以及可能的CgAffineTransformMakeTransform。很难知道我是否正确理解您的意思,但当您说……行另一侧的另一个x&y位置时,我想你指的是直线另一端的坐标

如果是这样的话,我相信你可能要寻找的实际公式是:

{x1,y1}=您已经拥有的起点 {x2,y2]=您要查找的点

x2=x1+距离*cosA y2=y1+距离*sinA 但正如我前面提到的,我有点不确定这是否能满足您的需要。如果您实际上是在寻找Line.png边界框另一侧的顶点点,那么您可能仍然可以使用该公式,但可以将度数更改90以确定从x&y角度偏移的坐标至少你已经知道了


无论如何,我希望这至少能帮你找到一个有用的方向。

你想测试什么样的碰撞?两条线段?一条线段和一个矩形?一条线段和一个多边形?请详细说明。谢谢你的回答,任务更新:我正试着比较一个矩形,一个方形精灵和这个矩形。这个想法是一个Racker正在移动,玩家可以画一条线,如果角色击中了线,它会向相反方向反弹。我为我的延迟响应道歉,离开了几天。你的公式是正确的!我已经在纸上测试过了。但是如何检查我的sprite a square是否击中了这条线?CGRectMake只接受一组坐标。谢谢谢谢你的帮助!这是一个关于碰撞检测最佳方法的好问题。我自己也在努力解决这个问题。这似乎是由你使用的对象的类型决定的。我不是回答这个问题的最佳人选。我在写我自己的问题,因为我似乎找不到解决这个问题的全面解决方案。你的问题这里的问题是如何在已知点、距离和角度的情况下确定x&y的位置,我想我可以帮上忙。不过,我希望你在另一方面好运!你完全正确,你回答了我原来的问题。我将开始一个关于碰撞的新问题。再次感谢!