0

そのため、画面上で同時に複数のスプライトを移動しようとしています。問題は、2つのスプライトが互いに接近している場合、位置が同じになり(したがって、バウンディングボックスが同じになる)、それらを引き離すことができないように見えることです。

私は「標準」を使用していCGRectContainsPoint(sprite1.boundingBox,location)ます。

私が必要としているのは、boundingBoxに関係なくスプライトを一番上に配置することです。何か案は?

4

2 に答える 2

1

CCNode1つの方法は、のメソッドを使用して、追加するスプライトに明示的なz値の割り当てを開始することです-(void) addChild: (CCNode*)node z:(NSInteger)z

次に、境界テストから複数のスプライトを取得した場合は、z値が最大のスプライトのみを移動します。

于 2012-05-13T18:29:40.697 に答える
0

hah..iは可能な限り最も簡単な方法で修正されました:\

 if (CGRectContainsPoint (sprite1.boundingBox,location)){
 sprite1.position=location;
 }else if (CGRectContainsPoint (sprite2.boundingBox,location)){
 sprite2.position=location;
 }

これが動作する方法は、バウンディングボックスが同じである場合、2番目のものではなく1つだけを取るというものです。

于 2012-05-13T18:37:19.967 に答える