Я пытаюсь масштабировать и вращать CCSprite, используя следующие методы
[rectangleSprite setRotation:touch1.y];
rectangleSprite.scaleX=(touch1.x-touch2.x)/100;
rectangleSprite.scaleY=(touch1.y-touch2.y)/100;
Но когда я масштабирую или поворачиваю спрайт, его CGRect расширяется, чтобы покрыть всю повернутую область, и обнаружение столкновений через CGRectIntersectsRect не работает. после долгих поисков я наткнулся на следующие решения, но, похоже, они не работают
как проверить столкновение с повернутым CGRect?
после поворота, как я могу применить CGRectApplyAffineTransform , чтобы получить новый прямоугольник в соответствии с вращением, или есть ли другой возможный способ с ним?
Я применяю преобразование следующим образом, но получаемый прямоугольник имеет отрицательные исходные значения. Что я, возможно, делаю неправильно?
CGAffineTransform affine;
// add a rotate
affine = CGAffineTransformMakeRotation(-CC_DEGREES_TO_RADIANS(angle));
CGRect start =[rectangleSprite boundingBox];
NSLog(@"cg rect %f %f",start.size.height ,start.size.width);
CGRect newRect = CGRectApplyAffineTransform(start, affine);
NSLog(@"cg rect %f %f",rct.origin.x,rct.origin.y);