【问题标题】:How to detect shake on the iPhone using Cocos2D?如何使用 Cocos2D 检测 iPhone 上的抖动?
【发布时间】:2010-08-05 15:49:39
【问题描述】:

我知道如何为 iPhone 摇晃已经被问了一百万次了,但我似乎找不到任何关于 Cocos2D 加速度计的有用信息。我发现的一切都涉及使用视图,我认为我没有在 Cocos2D 中使用任何视图,如果我认为它们对我来说是隐藏的。我想知道 CCLayer 类中何时发生了任何形式的抖动?

【问题讨论】:

    标签: iphone cocos2d-iphone accelerometer shake


    【解决方案1】:

    我想通了。在图层类中,您需要放置这些行;

    self.isAccelerometerEnabled = YES;
    [[UIAccelerometer sharedAccelerometer] setUpdateInterval:1/60];
    shake_once = false;
    

    然后在图层类中实现这个功能;

    -(void) accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration {
    
    float THRESHOLD = 2;
    
    if (acceleration.x > THRESHOLD || acceleration.x < -THRESHOLD || 
        acceleration.y > THRESHOLD || acceleration.y < -THRESHOLD ||
        acceleration.z > THRESHOLD || acceleration.z < -THRESHOLD) {
    
        if (!shake_once) {
            int derp = 22/7;
            shake_once = true;
        }
    
    }
    else {
        shake_once = false;
    }
    
    }
    

    shake_once 只是一个布尔值,用于阻止一次摇晃被多次注册。

    【讨论】:

    • 请注意,1/60 的计算结果为 0,因为您使用的是整数。 (尝试1.0f / 60.0f 获得 0.016~ 结果)同样不推荐使用isAccelerometerEnabled。使用self.accelerometerEnabled
    猜你喜欢
    • 1970-01-01
    • 2021-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多