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 打开页面,复制代码到本地 ...
随机推荐
- /usr/bin/python与/usr/bin/env python的区别
Infi-chu: http://www.cnblogs.com/Infi-chu/ /usr/bin/env python执行时,先查找python解释器的路径,然后执行./usr/bin/pyth ...
- 学习笔记二:异步FIFO
, ) //用格雷码的局限性:循环计数深度必须是2的n次幂,否则就失去了每次只变化一位的特性 (wclk,wrstn,wdata,wfull,winc,rclk,rrstn,rdata,rempt ...
- SDR软件无线电知识要点(三)EVM
SDR软件无线电知识要点(三)EVM 信号质量如何评估 Noise Figure (NF) or sensitivity and Error Vector Magnitude (EVM) provid ...
- 20155320 《Java程序设计》实验三 敏捷开发与XP实践
20155320 <Java程序设计>实验三 敏捷开发与XP实践 实验内容 XP基础 XP核心实践 相关工具 (一)研究一下Code菜单 具体内容: 在IDEA中使用工具(Code-> ...
- 2 oracle 实现上下键翻历史命令 rlwrap
1.下载 rlwrap 环境:VMware虚拟机 redhat 7.0 oracle 12c 下载rlwrap:http://files.cnblogs.com/files/kil ...
- OpenStack入门篇(八)之镜像服务Glance
一.Glance的概述 Glance是为虚拟机的创建提供镜像的服务,我们基于Openstack是构建基本的IaaS平台对外提供虚拟机,而虚拟机在创建时必须为选择需要安装的操作系统,Glance服务就是 ...
- cogs2554 [福利]可持久化线段树
cogs2554 [福利]可持久化线段树 原题链接 每次修改复制一遍就行了... 1A!!! // It is made by XZZ #include<cstdio> #include& ...
- java模拟http请求
java模拟http发送请求,第一种是HttpURLConnection发送post请求,第二种是使用httpclient模拟post请求, 方法一: package main.utils; impo ...
- [转载]A cycle was detected in the build path of project
解决Eclipse中Java工程间循环引用而报错的问题 如果我们的项目包含多个工程(project),而它们之间又是循环引用的关系,那么Eclipse在编译时会抛出如下一个错误信息: “A cycle ...
- 用MYSQLworkbench导出数据excel
步骤: 1.先从数据库中将表导出,右键需要导出的表格——>Table Data Export Wizard 2.点击Next,选择你需要把数据存放的文件路径.导出的数据格式(表格的话就默认选择C ...