Windows 64 版下载地址
|
Mac 版下载地址
)进行代码的开发和上传。
配置
。
浏览器对象模型
)和 DOM(
文档对象模型
),我们直接通过使用的
swan API
就可以来完成一款游戏的开发。
接下来,我们通过使用百度开发者工具来实现一些 demo, 来体验一下 API 的使用。
swan.getSystemInfoSync()
来获取系统信息,比如手机的品牌、型号、可使用窗口的宽高。
1 2 3 4 5
|
const {windowWidth, windowHeight, brand, model} = swan.getSystemInfoSync(); console.log(res.brand); console.log(res.model); console.log(res.windowWidth); console.log(res.windowHeight);
|
canvas
绘制出来的。我们先通过调用
swan.createCanvas()
方法来创建
画布
,相当于制作了一张
白纸
,然后通过
canvas.getContext('2d')
可以获取 canvas 的上下文对象,相当于获得了
画笔
,再通过修改
画笔
的性质来绘制出我们的游戏界面。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
const {windowWidth, windowHeight} = swan.getSystemInfoSync();
const canvas = swan.createCanvas();
const context = canvas.getContext('2d');
context.fillStyle = '#ffffff';
context.fillRect(0, 0, windowWidth, windowHeight);
context.font = '40px Arial'; context.fillStyle = '#000000';
context.fillText('99', 60, 150);
|
我们可以先把 game.js 的代码清空,然后写入下放代码来创建一个画布并在画布中绘制数字
99
,保存代码并等待刷新。如果没有刷新,请点击
编译
按钮,此时我们便会看到绘制出来的
99
的字样。
首次调用
swan.createCanvas
,创建的是上屏 canvas,宽高与屏幕相同。之后如果再次调用此 API,创建的都是离屏 canvas,可以想象成是另一层
画纸
,既在离屏上的绘制不会显示在屏幕上,如果想要显示,我们需要把它渲染绘制到上屏的 canvas 上。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
const offScreenCanvas = swan.createCanvas(); const offContext = offScreenCanvas.getContext('2d');
offContext.fillStyle = '#bbbbbb'; offContext.font = '60px Arial'; offContext.fillRect(0, 0, windowWidth, windowHeight); offContext.fillStyle = '#ffffff'; offContext.fillText('3', 20, 120); offContext.font = '30px Arial'; offContext.fillText('11', 100, 220); offContext.font = '20px Arial'; offContext.fillText('25', 200, 120); offContext.font = '80px Arial'; offContext.fillText('9', 30, 400); offContext.font = '40px Arial'; offContext.fillText('88', 250, 400); offContext.fillText('找出最大的数:', 20, 60);
context.drawImage(offScreenCanvas, 0, 0);
|
此时便把离屏 canvas 绘制到了屏幕上。
如果想要使用清除功能,可以调用
context.clearRect()
。
1 2
|
context.clearRect(20, 320, 60, 60);
|
我们可以看到在矩形中清除出一个方块区域。我们也可以把清除放在离屏 canvas 上,但是要注意,操作完离屏 canvas 需要重新绘制到上屏 canvas 上。
1 2 3 4 5 6 7 8 9
|
offContext.clearRect(20, 320, 40, 40);
context.fillStyle = '#ffffff'; context.clearRect(0, 0, windowWidth, windowHeight); context.fillRect(0, 0, windowWidth, windowHeight); context.fillStyle = '#000000'; context.fillText('99', 60, 150); context.drawImage(offScreenCanvas, 0, 0);
|
更多 canvas 的绘制操作参见
CanvasRenderingContext2D
。
触摸事件
。
交互
。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
swan.showModal({ title: '标题', content: '这是一个模态弹窗', cancelColor: '#ff0000', confirmColor: '#fff000', success: res => { if (res.confirm) { console.log('点击了确定'); } else if (res.cancel) { console.log('点击了取消'); } } });
swan.showToast({ title: '标题', icon: 'success', duration: 1000, success: () => console.log('提示框显示成功') });
|
sConsole 教程
。