微信小游戏适配与优化指南

  1. gsme.js中顶部引入weapp-adapter.js,来自官方文档,下载文件的根目录文件即可
  2. 找到weapp-adapter.js中canvas.__proto__.__proto__ = xxx一行,换成canvas.__proto__.__proto__ = new HTMLCanvasElement('canvas')
  3. 找到weapp-adapter.js中var HTMLCanvasElement = exports.HTMLCanvasElement = xxx,注意不是var HTMLCanvasElement = exports.HTMLCanvasElement = undefined那里,将这里的var 换成window.
  4. 找到weapp-adapter.js中最早最外层的var TouchEvent改为window.TouchEvent
  5. H5导出,并全部内容粘贴到小游戏根目录
  6. 将index.html中所有引用的script标签全部转换成require直接引用
  7. 将index.html最后的script直接写在game.js的下面
  8. 在jshashtable.js最前面添加window.Hashtable=
  9. 将除了logger.js的所有的var gdjs;改为window.gdjs
  10. 在logger.js中,函数最后添加;window.gdjs = l
  11. 在pixi.js最前面将var =改为window.
  12. 下载pixi的unsafe-eval文件,并在pixi.js之后立马引入
  13. 在unsafe-eval.js中,将this.PIXI换成window.PIXI
  14. 在runtimegame-pixi.render.js中,删除i.onkeydown=function(n){m()||(f.includes(n.keyCode)&&n.preventDefault(),e.onKeyPressed(n.keyCode,n.location))},i.onkeyup=function(n){m()||(f.includes(n.keyCode)&&n.preventDefault(),e.onKeyReleased(n.keyCode,n.location))};,即删除keydown与keyup
  15. 在runtimegame-pixi.render.js中,将document.title=e换成console.log(document.title)
  16. runtimewatermark.js引用从game.js中删除,在runtimegame中,删除this._watermark=new n.watermark.RuntimeWatermark(this,e.properties.authorUsernames,this._data.properties.watermark),this._watermark.displayAtStartup(),
  17. runtimepage-pixi-renderer.js中,createStandardCanvas函数内容换为this._throwIfDisposed();const t = wx.createCanvas();this.initializeForCanvas(t)
  18. runtimegame-pixi.renderer.js中document.createElement("canvas");e.appendChild(t),换成window.canvas;
  19. runtimegame-pixi.renderer.js中删除,e.style.position="absolute",e.tabIndex=1,e.style.userSelect="none",e.style.outline="none";const t=document.createElement("div");t.style.position="absolute",t.style.overflow="hidden",t.style.outline="none",t.style.pointerEvents="none",t.addEventListener("scroll",i=>{t.scrollLeft=0,t.scrollTop=0,i.preventDefault()}),e.addEventListener("pointerdown",()=>{e.focus()}),t.style["-webkit-user-select"]="none",e.parentNode?.appendChild(t),this._domElementsContainer=t
  20. 如果有其他插件引入,则首行记得都把var xxx;改为window.xxx