文章讲解的很细致,让你快速上手,首先安装开发工具,前往 开发者工具下载页面 ,根据自己的操作系统下载对应的安装包进行安装。接下来就可以进行微信小游戏的开发了。
你的第一个小游戏
新建项目选择小程序项目,选择代码存放的硬盘路径。 目前小游戏不提供公开注册,可点击体验小游戏使用无 appid 模式。 给你的项目起一个好听的名字,最后,勾选“建立游戏快速启动模板”(注意:你要选择一个空的目录才会有这个选项),点击确定,你就得到了你的第一个小游戏了。
点击顶部菜单编译就可以在 ide 预览你的第一个小游戏。
真机预览
点击工具上的编译按钮,可以在工具的左侧模拟器界面看到这个小游戏的表现。点击预览按钮,通过微信的扫一扫在手机上体验你的第一个小游戏。
文件结构
小游戏只有以下两个必要文件:
game.js 小游戏入口文件
game.json 配置文件
配置
小游戏开发者通过在根目录编写一个 game.json 文件进行配置,开发者工具和客户端需要读取这个配置,完成相关界面渲染和属性设置。
deviceorientation
示例配置
1
2
3
4
5
6
7
8
9
{ "deviceorientation": "portrait", "networktimeout": { "request": 5000, "connectsocket": 5000, "uploadfile": 5000, "downloadfile": 5000 }}
wx api
你只能使用 javascript 来编写小游戏。小游戏的运行环境是一个 绑定了一些方法的 javascript vm。不同于浏览器,这个运行环境没有 bom 和 dom api,只有 wx api。接下来我们将介绍如何用 wx api 来完成创建画布、绘制图形、显示图片以及响应用户交互等基础功能。
创建 canvas
调用 wx.createcanvas() 接口,可以创建一个 canvas 对象。
1
varcanvas = wx.createcanvas()
此时创建的 canvas 已经显示在了屏幕上,且与屏幕等宽等高。
1
console.log(canvas.width, canvas.height)
但是由于没有在 canvas 上进行绘制,所以 canvas 是透明的。使用 2d 渲染上下文的进行简单的绘制,可以在屏幕左上角看到一个 100x100 的红色矩形。
1
2
3
var context = canvas.getcontext('2d')context.fillstyle = 'red'context.fillrect(0, 0, 100, 100)
通过 canvas.getcontext() 方法可以获取 2d 或 webgl 渲染上下文 renderingcontext,调用渲染上下文的绘制方法可以在 canvas 上进行绘制。小游戏基本上支持 2d 和 webgl 1.0 所有的属性和方法,详情请见 renderingcontext。由于使用 webgl 的绘制过程较为复杂,所以本文中的示例代码都以 2d 渲染上下文的绘制方法编写。
通过设置 width 和 height 属性可以改变 canvas 对象的宽高,但这也会导致 canvas 内容的清空和渲染上下文的重置。
1
2
canvas.width = 300canvas.height = 300
显示图片
通过 wx.createimage() 接口,可以创建一个 image 对象。image 对象可以加载图片。当 image 对象被绘制到 canvas 上时,图片才会显示在屏幕上。
1
varimage = wx.createimage()
设置 image 对象的 src 属性可以加载一张本地图片或网络图片,当图片加载完毕时会执行注册的 onload 回调函数,此时可以将 image 对象绘制到 canvas 上。
1
2
3
4
5
image.onload = function () { console.log(image.width, image.height) context.drawimage(image, 0, 0)}image.src = 'logo.png'
创建多个 canvas
在整个小游戏运行期间,首次调用 wx.createcanvas 接口创建的是一个上屏 canvas。在这个 canvas 上绘制的内容都将显示在屏幕上。而第二次、第三次等后几次调用 wx.createcanvas 创建的都会是离屏 canvas。在离屏 canvas 上绘制的内容仅仅只是绘制到了这个离屏 canvas 上,并不会显示在屏幕上。
以如下代码为例,运行后会发现屏幕上并没有在 (0, 0) 的位置显示 100x100 的红色矩形。因为我们是在一个离屏的 canvas 绘制的。
1
2
3
4
5
var screencanvas = wx.createcanvas()var offscreencanvas = wx.createcanvas()var offcontext = offscreencanvas.getcontext('2d')offcontext.fillstyle = 'red'offcontext.fillrect(0, 0, 100, 100)
为了让这个红色矩形显示在屏幕上,我们需要把离屏的 offscreencanvas 绘制到上屏的 screencanvas 上。
1
2
var screencontext = screencanvas.getcontext('2d')screencontext.drawimage(offscreencanvas, 0, 0)
动画
在 javascript 中,一般通过 setinterval/settimeout/requestanimationframe 来实现动画效果。小游戏对这些 api 提供了支持:
setinterval()
settimeout()
requestanimationframe()
clearinterval()
cleartimeout()
cancelanimationframe()
另外,还可以通过 wx.setpreferredframespersecond() 修改执行 requestanimationframe 回调函数的频率,以降低性能消耗。
触摸事件
响应用户与屏幕的交互是游戏中必不可少的部分,小游戏参照 dom 中的 touchevent 提供了以下监听触摸事件的 api:
wx.ontouchstart()
wx.ontouchmove()
wx.ontouchend()
wx.ontouchcancel()
01
02
03
04
05
06
07
08
09
10
11
12
13
14
wx.ontouchstart(function (e) { console.log(e.touches)}) wx.ontouchmove(function (e) { console.log(e.touches)})wx.ontouchend(function (e) { console.log(e.touches)})wx.ontouchcancel(function (e) { console.log(e.touches)
相关文章:
五个微信小游戏的技术要点
微信公众平台开发实现2048游戏的方法,公众2048
相关视频:
0基础微信开发入门视频教程
以上就是微信小游戏基于微信开发工具入门讲解的详细内容。