From 9f0f63a79ec60d1cd3faa7504365d3d663e584c0 Mon Sep 17 00:00:00 2001 From: Peli de Halleux Date: Tue, 12 Apr 2016 08:38:48 -0700 Subject: [PATCH] implementing input.rotation --- sim/libmbit.ts | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/sim/libmbit.ts b/sim/libmbit.ts index 98a0a02b..063f5107 100644 --- a/sim/libmbit.ts +++ b/sim/libmbit.ts @@ -305,6 +305,25 @@ namespace pxsim.input { default: return Math.floor(Math.sqrt(acc.instantaneousAccelerationSquared())); } } + + export function rotation(kind : number) : number { + let b = board(); + let acc = b.accelerometer; + acc.activate(); + let x = acc.getX(MicroBitCoordinateSystem.NORTH_EAST_DOWN); + let y = acc.getX(MicroBitCoordinateSystem.NORTH_EAST_DOWN); + let z = acc.getX(MicroBitCoordinateSystem.NORTH_EAST_DOWN); + + let roll = Math.atan2(y,z); + let pitch = Math.atan(-x / (y*Math.sin(roll) + z*Math.cos(roll))); + + let r = 0; + switch(kind) { + case 0: r = pitch; break; + case 1: r = roll; break; + } + return Math.floor(r / Math.PI * 180); + } export function setAccelerometerRange(range: number) { let b = board();