【发布时间】:2011-12-28 10:43:30
【问题描述】:
我正在尝试使用以下方法缩放和旋转 CCSprite
[rectangleSprite setRotation:touch1.y];
rectangleSprite.scaleX=(touch1.x-touch2.x)/100;
rectangleSprite.scaleY=(touch1.y-touch2.y)/100;
但是当我缩放或旋转精灵时,它的 CGRect 会扩展以覆盖整个旋转区域,并且通过 CGRectIntersectsRect 进行的碰撞检测不起作用。经过大量搜索后,我遇到了以下这样的解决方案,但它们似乎不起作用
how to check for collision with rotated 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);
【问题讨论】:
标签: ios math cocos2d-iphone collision-detection