Olá, estou usando DEVICEMOTION com o projeto CC v2.0.10. Eu uso o seguinte código, no entanto, o nó que estou tentando mover com devicemotion não responde quando testado em um dispositivo móvel com inclinação.
cc.systemEvent.setAccelerometerEnabled(true);
cc.systemEvent.on(cc.SystemEvent.EventType.DEVICEMOTION, this.onDeviceMotionEvent, this);
onDeviceMotionEvent: perform (occasion) {
occasion.acc.x = this.ballAccel.x;
occasion.acc.y = this.ballAccel.y;
cc.log(occasion.acc.x + " " + occasion.acc.y);
},
Mesmo que occasion.acc.x e .y não sejam iguais a 0, o código não funciona corretamente.
Você pode consultar os casos de exemplo que foram criados por um novo projeto, clique na aba Examples . Após a criação, o exemplo DeviceMotion está em asset->cases->03_gameplay->01_player_control->DeviceMotion
Na verdade, você deve ajustar o movimento do alvo na função de atualização.
Tenho o movimento ajustado na função de atualização com o código
replace (dt) {
this.node.x += this.ballAccel.y * dt * this.pace;
this.node.y += this.ballAccel.x * dt * this.pace;
},
Onde this.ballAccel é um cc.v2, e this.pace é apenas um único inteiro. O nó da bola se transfer, mas não está recebendo entrada devicemotion. Eu tentei apenas fazerthis.node.x += this.ballAccel.y;
porém o problema persiste.
Você verificou o exemplo que listei abaixo?