To create a Compass app in Sketchware, follow the steps given below. 1. In View area add an ImageView imageview1. Set image of a Compass as it's image. Make sure that North is towards the top.
2. Create a Gyroscope component gyro and another Gyroscope component gyroMagnet.
3. Create a More block extra and put following code in it. } private float[] floatGravity = new float[3]; private float[] floatGeoMagnetic = new float[3]; private float[] floatOrientation = new float[3]; private float[] floatRotationMatrix = new float[9]; { 4. In onCreate event use blocks Gyroscope gyro sensor stop, and Gyroscope gyroMagnet sensor stop. After that put following code in an add source directly block: gyro.registerListener(_gyro_sensor_listener, gyro.getDefaultSensor(Sensor.TYPE_ACCELEROMETER),SensorManager.SENSOR_DELAY_NORMAL); gyro.registerListener(_gyroMagnet_sensor_listener, gyro.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD),SensorManager.SENSOR_DELAY_NORMAL); 5. In onPause event use blocks Gyroscope gyro sensor stop, and Gyroscope gyroMagnet sensor stop. 6. In onResume event put following code in an add source directly block: gyro.registerListener(_gyro_sensor_listener, gyro.getDefaultSensor(Sensor.TYPE_ACCELEROMETER),SensorManager.SENSOR_DELAY_NORMAL); gyro.registerListener(_gyroMagnet_sensor_listener, gyro.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD),SensorManager.SENSOR_DELAY_NORMAL); 7. In gyro: onSensorChanged event use an add source directly block and put following code: floatGravity = _param1.values; SensorManager.getRotationMatrix(floatRotationMatrix, null, floatGravity, floatGeoMagnetic); SensorManager.getOrientation(floatRotationMatrix, floatOrientation); imageview1.setRotation((float) (-floatOrientation[0]*180/3.14159265359)); 8. In gyroMagnet: onSensorChanged event use an add source directly block and put following code: floatGeoMagnetic = _param1.values; SensorManager.getRotationMatrix(floatRotationMatrix, null, floatGravity, floatGeoMagnetic); SensorManager.getOrientation(floatRotationMatrix, floatOrientation); imageview1.setRotation((float) (-floatOrientation[0]*180/3.14159265359)); 9. Save and run the project. You will see the top of image rotate to the North direction. script src="https://apis.google.com/js/platform.js">
0 Comments