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({
width: 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
pixi.js 微信小游戏 入手的更多相关文章
- PIXI兼容微信小游戏
首先导入官方的weapp-adapter,然后导入pixi.min.js,微信小程序使用ES6的module引用模块,具体参见ES6的Module. import './libs/weapp-adap ...
- three.js 微信小游戏
最近在 https://classroom.udacity.com/courses/cs291 学习了一些 3D 引擎和 three.js 的知识 把 three.js 弄到微信小游戏里,先随便跑一跑 ...
- phaser2 微信小游戏入手
phaser2小游戏基本没什么什么问题,可以下常开发游戏.如果遇到什么问题, 可以提出来共同讨论. 下面来个例子 import './lib/weapp-adapter'; import Phaser ...
- 微信小游戏 demo 飞机大战 代码分析(四)(enemy.js, bullet.js, index.js)
微信小游戏 demo 飞机大战 代码分析(四)(enemy.js, bullet.js, index.js) 微信小游戏 demo 飞机大战 代码分析(一)(main.js) 微信小游戏 demo 飞 ...
- 微信小游戏 demo 飞机大战 代码分析 (三)(spirit.js, animation.js)
微信小游戏 demo 飞机大战 代码分析(三)(spirit.js, animation.js) 微信小游戏 demo 飞机大战 代码分析(一)(main.js) 微信小游戏 demo 飞机大战 代码 ...
- 微信小游戏 demo 飞机大战 代码分析 (二)(databus.js)
微信小游戏 demo 飞机大战 代码分析(二)(databus.js) 微信小游戏 demo 飞机大战 代码分析(一)(main.js) 微信小游戏 demo 飞机大战 代码分析(三)(spirit. ...
- 微信小游戏 demo 飞机大战 代码分析 (一)(game.js, main.js)
微信小游戏 demo 飞机大战 代码分析(一)(main.js) 微信小游戏 demo 飞机大战 代码分析(二)(databus.js) 微信小游戏 demo 飞机大战 代码分析(三)(spirit. ...
- 【转】利用 three.js 开发微信小游戏的尝试
前言 这是一次利用 three.js 开发微信小游戏的尝试,并不能算作是教程,只能算是一篇笔记吧. 微信 WeChat 6.6.1 开始引入了微信小游戏,初期上线了一批质量相当不错的小游戏.我在查阅各 ...
- 微信小游戏开发之四:使用three.js引擎
一.前言 微信小游戏中最魔性的'跳一跳'就是基于three.js 引擎开发的 源码放到github上了:GitHub地址 请自行下载. 二.下载 three.min.js 打开页面,复制代码到本地 ...
随机推荐
- SDR软件无线电知识要点(三)EVM
SDR软件无线电知识要点(三)EVM 信号质量如何评估 Noise Figure (NF) or sensitivity and Error Vector Magnitude (EVM) provid ...
- 接口与协议学习笔记-Ethernet UDP通信协议(一)
总线(BUS,即公共汽车,数据的公共传输路线)分类的方式有很多,如被分为外部和内部总线.系统总线和非系统总线等等,下面是几种最常用的分类方法.另外,总线的传输核心思想是多路复用:时分多路复用-TDMA ...
- SAP OData $batch processing
例として.1回の呼び出しで100個の新しい商品を作成したい場合.最も簡単な方法は.$ batch要求を使用して100個のPOST呼び出しすべてを単一のサービス呼び出しにまとめることです. URIの末尾 ...
- python 验证码识别初探
使用 pytesser 与 pytesseract 识别验证码 前置 : 首先需要安装 tesserract tesserract windows 安装包及中文 https://pan.baidu ...
- 20145207 实验二《Java面向对象程序设计》实验报告
20145207 实验二<Java面向对象程序设计>实验报告 实验内容 1.初步掌握单元测试和TDD 2.理解并掌握面向对象三要素:封装.继承.多态 3.初步掌握UML建模 4.熟悉S.O ...
- dsu on tree总结
dsu on tree 树上启发式合并.我并不知道为什么要叫做这个名字... 干什么的 可以在\(O(n\log n)\)的时间内完成对子树信息的询问,可横向对比把树按\(dfs\)序转成序列问题的\ ...
- 成都Uber优步司机奖励政策(4月10日)
滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...
- 图论-最短路径 2.Dijkstra算法O (N2)
2.Dijkstra算法O (N2) 用来计算从一个点到其他所有点的最短路径的算法,是一种单源最短路径算法.也就是说,只能计算起点只有一个的情况. Dijkstra的时间复杂度是O (N2),它不能处 ...
- PHP版本的讲解
原文地址:http://dev.meettea.com/show-90-1.html 最近发现很多PHP程序员对PHP版本知识了解不是很清楚,其中不乏PHP产品主力开发人员. PHP版本主要分三支:P ...
- 【实用】巧用For xml 生成HTML代码
可以利用SQL的For xml直接生成HTML结构,比如我想生成如下结构: <li> <img src="..."/> <input type=&qu ...