1

2 つの画像があり、それらを適切に衝突させる必要があります。多くの解決策を試しましたが、適切に衝突させることができません。

ここに画像があります

画像1画像1

画像2画像2

CGRectIntersectsRect() を試しましたが、フレームの問題で実際に出会う前に画像が衝突しているため、正しく機能しません。私を助けてください。

Sprite Kit も使用してみましたが、うまくいきません。

編集1:

このコードを試しましたが、機能しないか、非常に遅いです:

- (void) checkIntersectionOfRect1 :(CGRect) frame1 Rect2 : (CGRect) frame2 {

    CGAffineTransform cg1 = CGAffineTransformIdentity;
    CGMutablePathRef *cgPath1 = CGPathCreateWithRect(frame1,&cg1);

    CGAffineTransform cg2 = CGAffineTransformIdentity;
    CGMutablePathRef *cgPath2 = CGPathCreateWithRect(frame2,&cg1);

    ANPathBitmap * bm1 = [[ANPathBitmap alloc] initWithPath:cgPath1];
    ANPathBitmap * bm2 = [[ANPathBitmap alloc] initWithPath:cgPath2];

    [bm1 generateBitmap];
    [bm2 generateBitmap];

    ANPathIntersection * intersection = [[ANPathIntersection alloc] initWithPathBitmap:bm1                                                                        anotherPath:bm2];

    if ([intersection pathLinesIntersect:&CGPointZero]) {
        NSLog(@"intersect");
        [self endGame];
    }
    else {
        NSLog(@"No intersection");
    }
}

誰か助けてください。

4

2 に答える 2

0

うーん、よくわかりませんが。あなたの画像をチェックして、私のMacにダウンロードしました。それらは透明なので、透明な実際の画像の前のスペースは見えず、それが衝突を引き起こす画像に当たると見えなくなります。

Step 1:

確かに、画像ビューの背景色を青などの目立つ色に設定し、問題が発生する場所を確認してください。次に、プレビューを使用して、エッジのポイントに正確になるまで、スペースを切り取る必要があります。

Step 2 :

または、画像ビューのビューを Redraw に変更します。これにより、画像が画像ビューにフィットします。あなたのコードは私にはうまく見えます。

Step 3 :

または、NSTimer を使用して時間を 0.0001 に設定し、if ステートメントを作成することもできます。

//Try my methods, I'm pretty sure it  is not to do with your code but I am not a professional and maybe it is. You never know. 

あなたはこれを知っているでしょう、あなたのコードは非常に複雑です. ご不明な点がございましたら、お気軽にお問い合わせください。ありがとう!

于 2014-10-03T10:58:39.567 に答える