建立第一个小游戏项目,结构如下:
可以发现有报错,接下来修改这里,即可解除报错
修改为game也可以
创建canvas
调用 wx.createCanvas() 接口,可以创建一个 Canvas 对象。
在game.js中输入以下代码
var canvas = wx.createCanvas()
即创建了一个上屏 Canvas,此时是透明的,已经在屏幕上展示了。类似于iOS中的window。相当于容器。
输入
console.log(canvas.width, canvas.height)
即可打印canvas的宽和高
在整个小游戏代码中首次调用 wx.createCanvas() 创建的是上屏 Canvas,之后调用则创建的是离屏 Canvas。如果你的项目中使用了官方提供的 Adapter即 weapp-adapter.js(关于什么是 Adpater 请参考官方教程 Adapter),那么你此时创建的会是一个离屏 Canvas。因为在 weapp-adapter.js 已经调用了一次 wx.createCanvas(),并把返回的 canvas 作为全局变量暴露出来。假设你的项目目录结构如下:
├── game.js
├── weapp-adapter.js
└── game.json
在 weapp-adapter.js 中已经调用了一次 wx.createCanvas(),并把返回的 canvas 作为全局变量暴露出来。
// weapp-adapter
canvas = wx.createCanvas()
如果你在 require weapp-adapter.js 之后再调用 wx.createCanvas(),那么创建的 Canvas 会是一个离屏的 Canvas,因为此时已经不是对该 API 的首次调用。
require('./weapp-adapter')
var myCanvas = wx.createCanvas()
在 Canvas 上进行绘制
但是由于没有在 canvas 上进行绘制,所以 canvas 是透明的。使用 2d 渲染上下文的进行简单的绘制,可以在屏幕左上角看到一个 100x100 的红色矩形。
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 内容的清空和渲染上下文的重置。
canvas.width = 300
canvas.height = 300