0

实际上,只要按下按钮,我就需要移动我的精灵,释放按钮时精灵应该停止。

我的代码如下:

 CCMenuItemFont *item1 = [CCMenuItemFont itemFromString: @"icon.png" target:self selector:@selector(doit)];
        CCMenu * taskMenu = [CCMenu menuWithItems:item1,  nil];
        [self addChild:taskMenu];

-void()doit
{
        spritevelocity = 80;
}

上面的代码使我的精灵在点击按钮时继续移动,但我需要在按钮释放后立即停止我的精灵。

我尝试了下面的代码但没有成功:

-void()doit
{
    buttonpressed = YES;
    if (buttonpressed) {
        spritevelocity = 80;
    }
}

- (void)ccTouchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
         buttonpressed = NO;
}

注意:我只是想让 spritevelocity = 0 来停止我的精灵,也就是说我希望 spritevelocity = 0 释放按钮时

4

2 回答 2

1

您需要继承 CCMenuItem 以防覆盖selected,unselectedactivate方法。在那里,您可以强制您的按钮按照您的意愿行事。在这种情况下,不仅要对新闻采取行动,还要在发布时采取行动。这是覆盖 CCMenu 的一个很好的例子:http: //johnehartzog.com/2009/10/easy-to-create-buttons-with-cocos2d/

于 2012-06-25T16:18:28.663 回答
0

为什么不直接设置速度?

- (void)ccTouchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
     buttonpressed = NO;
     spritevelocity = 0;
 }

你能解释一下什么时候被doIt调用吗?

于 2012-06-25T16:27:00.153 回答