そのため、画面上で同時に複数のスプライトを移動しようとしています。問題は、2つのスプライトが互いに接近している場合、位置が同じになり(したがって、バウンディングボックスが同じになる)、それらを引き離すことができないように見えることです。
私は「標準」を使用していCGRectContainsPoint(sprite1.boundingBox,location)
ます。
私が必要としているのは、boundingBoxに関係なくスプライトを一番上に配置することです。何か案は?
そのため、画面上で同時に複数のスプライトを移動しようとしています。問題は、2つのスプライトが互いに接近している場合、位置が同じになり(したがって、バウンディングボックスが同じになる)、それらを引き離すことができないように見えることです。
私は「標準」を使用していCGRectContainsPoint(sprite1.boundingBox,location)
ます。
私が必要としているのは、boundingBoxに関係なくスプライトを一番上に配置することです。何か案は?
CCNode
1つの方法は、のメソッドを使用して、追加するスプライトに明示的なz値の割り当てを開始することです-(void) addChild: (CCNode*)node z:(NSInteger)z
。
次に、境界テストから複数のスプライトを取得した場合は、z値が最大のスプライトのみを移動します。
hah..iは可能な限り最も簡単な方法で修正されました:\
if (CGRectContainsPoint (sprite1.boundingBox,location)){
sprite1.position=location;
}else if (CGRectContainsPoint (sprite2.boundingBox,location)){
sprite2.position=location;
}
これが動作する方法は、バウンディングボックスが同じである場合、2番目のものではなく1つだけを取るというものです。