game.js 4.6 KB

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