我试图跟踪用户将哪个精灵拖放到“矩形”对象之上。我认为最简单的做法是将相同类型的“MySprite”属性添加到“Rectangle”对象,然后将其值设置为等于放在它上面的“MySprite”。我认为使用“Rectangle.h”文件中的“MySprite *sprite”属性以及在“Retangle.m”文件中合成它会自动创建“setSprite”方法。我不明白的东西......
“target.sprite = selSprite;” CocosScene.m 中的以下代码行导致以下错误:
2013-05-14 20:32:51.953 DragDrop [461:c07] * 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-[CCSprite setSprite:]:**无法识别的选择器发送到实例0x8d5c280”
矩形.h
#import "CCNode.h"
#import "cocos2d.h"
#import "MySprite.h"
@interface Rectangle : CCNode
{
MySprite *sprite;
}
@property(nonatomic,readwrite,copy) MySprite *sprite;
@end
矩形.m
@implementation Rectangle
@synthesize sprite = _sprite;
@end
CocosScene.m
for(Rectangle *target in wordCircleRectangles)
{
if(CGRectIntersectsRect(selSprite.boundingBox, target.boundingBox))
{
target.sprite = selSprite;
}
}