読者です 読者をやめる 読者になる 読者になる

フニゲの開発日記

Electronとか...

加速度センサーを使う

 加速度センサーはMacBookのブラウザでも普通に使えるし、スマホのブラウザでもだいたい使える。Windowsのノートは何年も触ってないので知らないのだが、たぶん使えると思う。

    ctor:function () {
        this._super();

        var size = cc.director.getWinSize();
        this.sprite = cc.Sprite.create("res/HelloWorld.png");
        this.sprite.setPosition(cc.p(size.width / 2, size.height / 2));
        this.addChild(this.sprite, 0);

        if ('accelerometer' in cc.sys.capabilities) {
            cc.inputManager.setAccelerometerInterval(1/60);
            cc.inputManager.setAccelerometerEnabled(true);
            cc.eventManager.addListener({
                event: cc.EventListener.ACCELERATION,
                callback: function (accelEvent, event) {
                    var target = event.getCurrentTarget();

                    var size = cc.director.getWinSize();
                    var w = size.width;
                    var h = size.height;
                    var x = w * accelEvent.x + w/2;
                    var y = h * accelEvent.y + h/2;
                    target.sprite.setPosition(x, y);
                }
            }, this);
        }
    }

 いつも思うのだが加速度センサーのデータは不安定すぎる。そのままでは使えないので、思い切りクッションを入れると今度はなんだかフワフワした動きになってしまうし。

 正確な傾きを取りたいときはジャイロを使えばいいのだが、Cocos2d-JSではサポートがないので、ネイティブでジャイロを監視するコードを書いて、一定間隔でLocalStorageに書き込んでJavaScript側で値を取り出すとか、そんな感じになるのかな。

広告を非表示にする