【问题标题】:In Cocos2D how do I detect that finger is being held down?在 Cocos2D 中,我如何检测到手指被按住?
【发布时间】:2011-04-23 20:03:25
【问题描述】:

我知道- (BOOL)ccTouchBegan:(UITouch *)touch withEvent:(UIEvent *)event 方法,但想知道我如何不断地做某事,例如在手指向下时移动精灵?

【问题讨论】:

    标签: iphone objective-c cocos2d-iphone


    【解决方案1】:

    您可以像 Gajet 那样做,或者如果您的动作是恒定的,您可以安排您的动作。所以假设你有这个 move 方法:

    -(void)moveSprite:(ccTime) dt {
    
      // move your sprite here by small increments
    }
    

    然后在您提到的ccTouchBegan: 方法中,您安排移动方法[self schedule:@selector(moveSprite:)] 并在ccTouchEnded 中取消安排[self unschedule:@selector(moveSprite:)] 这将在您结束触摸时停止运动...希望这会有所帮助

    【讨论】:

      【解决方案2】:

      您只需在调用ccTouchBegan 时将布尔值设置为真,当调用ccTouchEnd 时设置为假,然后当调用ccTouchMove 事件时,您只需检查天气您的标志是否为真.

      【讨论】:

      • 是的,我用“while”语句尝试过这个,它只是让我的应用程序崩溃。不过可能只是我的代码。
      • 你应该在你的代码中放置任何时间,你必须为你的层安排更新并在更新函数中检查你的标志!
      【解决方案3】:

      实现适当的UIGestureRecognizer 子类。您将收到开始或更改或结束的事件 - 并且可能会采取相应的行动。

      【讨论】:

        猜你喜欢
        • 2019-10-14
        • 2012-10-10
        • 1970-01-01
        • 1970-01-01
        • 2012-12-29
        • 2022-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多