game.js 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163
  1. import game_store from '../store/game'
  2. import {gameAddLine, gameEnd} from "../requests/game";
  3. // // 往后端推送一次定时数据
  4. // export function post_data($big_data) {
  5. // wx.showLoading({
  6. // title: "正在结束上一个游戏",
  7. // mask: true
  8. // })
  9. // var $this = this
  10. // //判断数据长度大于理想状态 需要对数组进行切割 逐个提交数据
  11. // let $len = 300
  12. // console.log($big_data.attList.length, '结束游戏提交的数据量')
  13. // if ($big_data.attList.length > $len) {
  14. // let $count = Math.ceil($big_data.attList.length / $len)
  15. //
  16. // let index = 0
  17. // let inter = setInterval(() => {
  18. // if (index < $count) {
  19. // let $params = {
  20. // game_record_id: game_store.getters.getGameRecordId(),
  21. // //数据段长度大于65 多个提交
  22. // line: $big_data.attList.slice(index * $len, (index + 1) * $len),
  23. // line_med: $big_data.medList.slice(index * $len, (index + 1) * $len)
  24. // }
  25. // gameAddLine($params).then((res) => {
  26. // let $data = res.data
  27. // if ($data.code == 0) {
  28. // console.log('ok', $params['line'])
  29. // }
  30. // })
  31. // }
  32. // index++
  33. // if (index == $count) {
  34. // clearInterval(inter)
  35. // game_over()
  36. // }
  37. // }, 200)
  38. // return $count * 500
  39. // } else {
  40. // let $params = {
  41. // game_record_id: game_store.getters.getGameRecordId(),
  42. // //数据段长度小于65 单个提交
  43. // line: $big_data.attList,
  44. // line_med: $big_data.medList
  45. // }
  46. //
  47. // if (!$params.line) {
  48. // return false
  49. // }
  50. // gameAddLine($params).then((res) => {
  51. // let $data = res.data
  52. // if ($data.code == 0) {
  53. // }
  54. // setTimeout(() => {
  55. // game_over()
  56. // }, 800)
  57. // })
  58. // return 800
  59. // }
  60. // }
  61. //
  62. // // 结束游戏
  63. // function game_over() {
  64. // let $params = {
  65. // game_record_id: game_store.getters.getGameRecordId(),
  66. // type: game_store.getters.getMode(),
  67. // play_time: game_store.getters.getPlayTime() - Math.abs(game_store.getters.getPlayedTime())
  68. // }
  69. // //
  70. // gameEnd($params).then((res) => {
  71. // let $data = res.data
  72. // to_report()
  73. // })
  74. // }
  75. function to_report() {
  76. mpvue.navigateTo({
  77. url: "/pages/report/main?id=" + game_store.getters.getGameRecordId(),
  78. success() {
  79. wx.hideLoading()
  80. //设置游戏状态为 停止游戏
  81. game_store.setters.setGameStatus(0)
  82. //游戏结束重置游戏时间
  83. wx.removeStorageSync('play_time')
  84. //删除游戏专注数据
  85. game_store.remover.rmGameAttMedDatas()
  86. //游戏结束重置游戏模式
  87. game_store.setters.setMode(0)
  88. // //删除游戏得id
  89. // game_store.setters.removeToyHex()
  90. //删除隐藏时间
  91. game_store.remover.rmHideTime()
  92. }
  93. })
  94. }
  95. /**
  96. * 游玩时间倒计时
  97. * @param value
  98. * @returns {string}
  99. */
  100. export function formatPlaySeconds(value) {
  101. // 字符串转数字
  102. var secondTime = parseInt(value); // 秒
  103. var minuteTime = 0; // 分
  104. if (secondTime > 60) {
  105. //如果秒数大于60,将秒数转换成整数
  106. //获取分钟,除以60取整数,得到整数分钟
  107. minuteTime = parseInt(secondTime / 60);
  108. //获取秒数,秒数取佘,得到整数秒数
  109. secondTime = parseInt(secondTime % 60);
  110. //如果分钟大于60,将分钟转换成小时
  111. }
  112. var result = "" + parseInt(secondTime);
  113. if (minuteTime > 0) {
  114. if (result.length == 1) {
  115. result = "0" + result;
  116. }
  117. if (parseInt(minuteTime).toString().length == 1) {
  118. minuteTime = "0" + parseInt(minuteTime);
  119. }
  120. result = "" + minuteTime + ":" + result;
  121. } else {
  122. result = "00:" + result;
  123. }
  124. return result;
  125. }
  126. /**
  127. * 获取大包数据进行绘制图表
  128. */
  129. export function get_big_data(hex) {
  130. let hexAry = []
  131. for (let i = 0; i < hex.length; i += 2) {
  132. hexAry.push(hex.substring(i, i+2))
  133. }
  134. //专注度数据
  135. let $att = parseInt(hexAry[6], 16)
  136. //放松度数据
  137. let $med = parseInt(hexAry[8], 16)
  138. let idx = 0
  139. let dataIndex = ['delta', 'theta', "low_alpha", "high_alpha", "low_beta", "high_beta", "low_gamma", "middle_gamma"]
  140. let datas = []
  141. hexAry.pop()
  142. for (let i = 11; i < hexAry.length; i += 3) {
  143. let num_1 = parseInt(hexAry[i], 16)
  144. let num_2 = parseInt(hexAry[i + 1], 16)
  145. let num_3 = parseInt(hexAry[i + 2], 16)
  146. let show_value = num_1 + num_2 + num_3;
  147. let basic_value = parseInt("0x" + hexAry[i] << 16 | "0x" + hexAry[i + 1] << 8 | "0x" + hexAry[i + 2], 16)
  148. datas[dataIndex[idx]] = show_value
  149. datas[`${dataIndex[idx]}_basic`] = basic_value
  150. idx += 1;
  151. }
  152. datas['att'] = $att;
  153. datas['med'] = $med;
  154. return datas
  155. }