да, хорошая точка зрения, решение было немного грязным, но оно работало, вот что я сделал: я создал подкласс CCSprite и создал новый атрибут с именем state, сохраняющий текущую позицию, если повернуть ее относительно этого поворота.В зависимости от того, какая сторона была затронута, я использовал эту информацию, чтобы определить, какая сторона прямоугольника была затронута.-
if((spriteCentre1.x < spriteCentre2.x) && (xAxisDiff < yAxisDiff))
{
[HelloWorldLayer whichSideTouched:sprite1 sideTouched:kStateRightPlus touchingSprite:sprite2];
}
+ (int) whichSideTouched: (SpriteCard *) sprite sideTouched: (int) коснулся touchSprite: (SpriteCard *) sprite2 {
switch (sprite.state) {case kStateUpPlus: case kStateUpMinus: if (touched == kStateDownPlus) {NSLog (@ "touched up");[sprite setTop: sprite2];retValue = kStateUpPlus;} else if (touch == kStateRightPlus) {NSLog (@ "touch left");[sprite setRight: sprite2];retValue = kStateLeftPlus;
}}