zoukankan      html  css  js  c++  java
  • pixi.js 微信小游戏 入手

    pixi是什么?一款h5游戏引擎

    • 优点:简单简洁性能第一
    • 缺点:大多数用的国产三大引擎,pixi资料少,工具少,
    • 为什么学,学习老外的先进处理方式。对比国内的三大框架,你就知道和老外的差距不是一丁点

    用pixi开发小游戏行吗?

    行.但要简单处理下

    下载官网上的 weapp-adapter.js  找到 var TouchEvent = function TouchEvent(type);  此行的后面添加  window.TouchEvent = TouchEvent; 因为这是window事件,必须全局化

    另外还需要对weapp-adapter的ajax做下处理

    function _triggerEvent(type) {
    	  if (typeof this['on' + type] === 'function') {
    	    for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
    	      args[_key - 1] = arguments[_key];
    	    }
    
    	    this['on' + type].apply(this, args);
    	  }
    	  // TODO 添加事件
    	  if (this.listener[type + "__bubble__"]) {
    	  	 let fun = this.listener[type + "__bubble__"];
    	  	 fun.apply(this);
    	  }
    	  if (this.listener[type]) {
    	  	 let fun = this.listener[type];
    	  	 fun.apply(this);
    	  }
    	}
    
    	function _changeReadyState(readyState) {
    	  this.readyState = readyState;
    	  _triggerEvent.call(this, 'readystatechange');
    	}
    
    	var XMLHttpRequest = function () {
    	  // TODO 没法模拟 HEADERS_RECEIVED 和 LOADING 两个状态
    	  function XMLHttpRequest() {
    	    _classCallCheck(this, XMLHttpRequest);
    
    	    this.onabort = null;
    	    this.onerror = null;
    	    this.onload = null;
    	    this.onloadstart = null;
    	    this.onprogress = null;
    	    this.ontimeout = null;
    	    this.onloadend = null;
    	    this.onreadystatechange = null;
    	    this.readyState = 0;
    	    this.response = null;
    	    this.responseText = null;
    	    this.responseType = '';
    	    this.responseXML = null;
    	    this.status = 0;
    	    this.statusText = '';
    	    this.upload = {};
    	    this.withCredentials = false;
    	    this.listener = {};
    
    	    _requestHeader.set(this, {
    	      'content-type': 'application/x-www-form-urlencoded'
    	    });
    	    _responseHeader.set(this, {});
    	  }
    
    	  /*
    	   * TODO 这一批事件应该是在 XMLHttpRequestEventTarget.prototype 上面的
    	   */
    
    
    	  _createClass(XMLHttpRequest, [{
    	  	key:'addEventListener',
    	  	value: function addEventListener(type, fun, bubble) {
    			var listener = this.listener;
    			if (bubble) {
    				listener[type + "__bubble__"] = fun;
    			} else {
    				listener[type] = fun;
    			}
    	  	}
    	  },
    	  {
    	  	key:'removeEventListener',
    	  	value: function removeEventListener(type, fun, bubble) {
    			var listener = this.listener;
    			if (bubble) {
    				delete listener[type + "__bubble__"];
    			} else {
    				delete listener[type];
    			}
    	  	}
    	  },
    

      

    game.js

      import './weapp-adapter'
      import * as PIXI from './pixi.min'

    const {pixelRatio, windowWidth, windowHeight} = wx.getSystemInfoSync();
    
    let app = new PIXI.Application({
         windowWidth * pixelRatio,
        height: windowHeight * pixelRatio,
        view: canvas
    });
    
    // 因为在微信小游戏里canvas肯定是全屏的,所以映射起来就很简单暴力
    // 可以有两种修改
    app.renderer.plugins.interaction.mapPositionToPoint = (point, x, y) => {
        point.x = x * pixelRatio
        point.y = y * pixelRatio
    }
    
    PIXI.interaction.InteractionManager.prototype.mapPositionToPoint = (point, x, y) => {
        point.x = x * pixelRatio
        point.y = y * pixelRatio
    }

    -----后面就可以写逻辑了

    就这三招,pixi.js小游戏轻轻松松搞定!!!

    https://developers.weixin.qq.com/minigame/dev/tutorial/base/adapter.html 官网上下载的原生的

    pixi.js用的是4.8.2 当前最新的。

    我是honghong, pixi.js开发小游戏一点问题都没有. 

    如果问题请留言, 大家一起探讨. qq群:881784257

  • 相关阅读:
    Golang调用windows下的dll动态库中的函数
    Golang 编译成 DLL 文件
    go 通过nginx代理后获取用户ip
    idea教程--Maven 骨架介绍
    idea教程--快速插入依赖
    Java开发名词解释
    Android Studio安装
    Java基础--Eclipse关联Java源码
    【排序基础】3、随机生成排序算法 测试用例
    【排序基础】2、使用模板(泛型)编写选择排序算法
  • 原文地址:https://www.cnblogs.com/honghong87/p/9375251.html
Copyright © 2011-2022 走看看