index.js 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. const style = require('./render/style')
  2. const template = require('./render/template')
  3. const Layout = require('./engine').default;
  4. let __env = GameGlobal.wx || GameGlobal.tt || GameGlobal.swan;
  5. let sharedCanvas = __env.getSharedCanvas();
  6. let sharedContext = sharedCanvas.getContext('2d');
  7. function draw(data) {
  8. Layout.clear();
  9. Layout.init(template(data), style);
  10. Layout.layout(sharedContext);
  11. }
  12. function updateViewPort() {
  13. Layout.updateViewPort({
  14. x: 0,
  15. y: 0,
  16. width: 0,
  17. height: 0,
  18. });
  19. }
  20. __env.onMessage(data => {
  21. if (data.type === 'engine') {
  22. switch (data.event) {
  23. case 'update':
  24. //刷新排行榜
  25. console.log(1111);
  26. wx.getFriendCloudStorage({
  27. keyList: ['score'],
  28. success: (datas) => {
  29. console.log(datas)
  30. let rank = [];
  31. datas.data.forEach(item => {
  32. rank.push({
  33. rankScore: Number(item.KVDataList[0].value),
  34. nickname: item.nickname,
  35. avatarUrl: item.avatarUrl,
  36. })
  37. })
  38. rank.sort((a, b) => b.rankScore - a.rankScore);
  39. rank.length = Math.min(rank.length, 5)
  40. updateViewPort();
  41. draw({
  42. data: rank
  43. });
  44. }
  45. })
  46. break;
  47. case 'score':
  48. //更新发分数
  49. wx.getUserCloudStorage({
  50. keyList: ['score'],
  51. success: (kvData) => {
  52. if (kvData.KVDataList && kvData.KVDataList.length > 0) {
  53. let level = Number(kvData.KVDataList[0].value)
  54. if (level < data.level) {
  55. wx.setUserCloudStorage({
  56. KVDataList: [{
  57. key: 'score',
  58. value: String(data.level)
  59. }],
  60. success: () => {
  61. console.log('设置分数完成' + data.level)
  62. }
  63. })
  64. } else {
  65. console.log('设置的分数比最高分数低', level, data.level)
  66. }
  67. }else{
  68. wx.setUserCloudStorage({
  69. KVDataList: [{
  70. key: 'score',
  71. value: String(data.level)
  72. }],
  73. success: () => {
  74. console.log('设置分数完成' + data.level)
  75. }
  76. })
  77. }
  78. }
  79. })
  80. break;
  81. default:
  82. break;
  83. }
  84. }
  85. });