jogo.js 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. var estilo = { font: "40px Arial", fill: "#fff", align: "center" };
  2. var longitude = 0;
  3. var latitude = 0;
  4. var local;
  5. var msg;
  6. var timer = 300;
  7. var Jogo = new Phaser.Class({
  8. Extends: Phaser.Scene,
  9. initialize:
  10. function Jogo()
  11. {
  12. // note: the pack:{files[]} acts like a pre-preloader
  13. // this eliminates the need for an extra "boot" scene just to preload the loadingbar images
  14. Phaser.Scene.call(this, {
  15. key: 'jogo'
  16. //pack: {
  17. // files: [
  18. // { type: 'image', key: 'loadingbar_bg', url: 'img/loadingbar_bg.png' },
  19. // { type: 'image', key: 'loadingbar_fill', url: 'img/loadingbar_fill.png' }
  20. // ]
  21. //}
  22. });
  23. },
  24. preload: function ()
  25. {
  26. this.load.image('fundo', 'img/background.jpg');
  27. this.load.image('btEncerrar', 'img/bto_encerrar.png');
  28. this.load.image('paisagem', 'img/3840.jpg');
  29. },
  30. create: function ()
  31. {
  32. this.fundo = this.add.image(487, 775, 'fundo');
  33. this.paisagem = this.add.image(490, 650, 'paisagem');
  34. this.btoEncerrar = this.add.image(500, 400, 'btEncerrar', { fill: '#0f0' })
  35. .setInteractive()
  36. .on('pointerdown', () => this.doVoltar() );
  37. local = this.add.text(300,1250,local,estilo);
  38. msg = this.add.text(200,950,local,estilo);
  39. msg.setText('Inicie sua caminhada!\n\nNão esqueça de apertar o botão\n\nEncerrar quando terminar.');
  40. this.verificaPermissao();
  41. //this.limpaDados();
  42. this.registraInicio();
  43. //this.insereTeste();
  44. },
  45. update: function ()
  46. {
  47. if (timer >= 250) {
  48. timer = 0;
  49. mudouPosicao = navigator.geolocation.watchPosition(this.mostraLocalizacao, this.simulaLocalizacao);
  50. } else timer++;
  51. },
  52. handleOrientation: function (e) {
  53. // Device Orientation API
  54. var x = e.gamma; // range [-90,90], left-right
  55. var y = e.beta; // range [-180,180], top-bottom
  56. var z = e.alpha; // range [0,360], up-down
  57. },
  58. verificaPermissao: function() {
  59. if (navigator.permissions) {
  60. navigator.permissions.query({name:'geolocation'}).then(result => {
  61. if (result.state != 'granted') {
  62. navigator.geolocation.getCurrentPosition();
  63. }
  64. });
  65. } else alert('O seu navegador não oferece geolocalização');
  66. },
  67. mostraLocalizacao: function (position) {
  68. latitude = position.coords.latitude;
  69. longitude = position.coords.longitude;
  70. local.setText('la: ' + latitude + '\nlo: ' + longitude + ', ');
  71. var data = localStorage.getItem('Data');
  72. if (data == null) data = '';
  73. var hoje = new Date();
  74. localStorage.setItem('Data', data + ', ' + hoje);
  75. data = localStorage.getItem('Local');
  76. if (data == null) data = '';
  77. localStorage.setItem('Local', data + 'la: ' + latitude + ' lo: ' + longitude + ', ');
  78. },
  79. simulaLocalizacao: function (error) {
  80. local.setText(error.message + '\nsimulando localização');
  81. var data = localStorage.getItem('Data');
  82. if (data == null) data = '';
  83. var hoje = new Date();
  84. localStorage.setItem('Data', data + hoje + ', ');
  85. data = localStorage.getItem('Local');
  86. if (data == null) data = '';
  87. localStorage.setItem('Local', data + 'SIMULAR DADOS, ');
  88. },
  89. registraInicio: function () {
  90. var marca = localStorage.getItem('Data');
  91. localStorage.setItem('Data', marca + '| ');
  92. marca = localStorage.getItem('Local');
  93. localStorage.setItem('Local', marca + '| ');
  94. },
  95. limpaDados: function () {
  96. var strNome = '';
  97. do {
  98. strNome = localStorage.key(0);
  99. localStorage.removeItem(strNome);
  100. } while (localStorage.length > 0);
  101. localStorage.setItem('MetaDeHoje', '200'); //--- precisa ser criado uma scena individual para a definição de metas
  102. },
  103. doVoltar: function ()
  104. {
  105. this.scene.start('inicio');
  106. },
  107. insereTeste: function () {
  108. // --- insere dados de teste ---
  109. localStorage.setItem('Data', '200|Thu May 16 2019 13:05:39 GMT-0300 (Horário Padrão de Brasília), Thu May 16 2019 13:07:41 GMT-0300 (Horário Padrão de Brasília), Thu May 16 2019 13:08:00 GMT-0300 (Horário Padrão de Brasília)');
  110. localStorage.setItem('Local', '|la: -23.580767 lo: -46.774423, la: -23.581152 lo: -46.773000, la: -23.580916 lo: -46.772764');
  111. //-------------------------------
  112. //alert(localStorage.getItem('Data'));
  113. }
  114. });