このコードを使用して作成されたスプライトである行があります
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位置を取得するにはどうすればよいですか?
皆さんが私を助けてくれることを願っています。
前もって感謝します!