我的游戏中有以下代码:
int x = 50;
int y = 400;
for (int i = 1; i < 30; i++) {
if (x+54 > self.boundingBox.size.width) {
x = 50;
y -= 70;
ccDrawCircle(CGPointMake(x, y), 20, 3.14, 100, NO);
} else {
ccDrawCircle(CGPointMake(x, y), 20, 3.14, 100, NO);
x += 72;
}
}
如何让每个圈子对触摸作出反应?具体来说,我正在考虑为它们提供按钮按压效果(触摸时缩小,在触摸时调整大小),还可以在触摸时更改颜色。
答案 0 :(得分:1)
如果使用Cocos,最简单的方法是让你的圈子成为CCSprites,然后在你的图层中使用这种方法回应那些精灵的触摸:
-(BOOL)ccTouchBegan:(UITouch *)touch withEvent:(UIEvent *)event{
然后,使用这样的常用技术迭代你的精灵:
isTouchHandled= CGRectContainsPoint([sprite boundingbox], [[CCDirector sharedDirector] convertToGL:[touch locationInView: [touch view]]]);
如果isTouchHandled
为TRUE,那么您可以使用该精灵或其他任何内容执行操作。
请注意,您可以在图层本身或精灵的子类中使用此方法,无论您选择哪种方式,都必须在init
或其中某处使用触摸调度程序注册节点:
[[CCTouchDispatcher sharedDispatcher] addTargetedDelegate:self priority:0 swallowsTouches:NO];