路径的想法
我们的想法是定义一条路径,然后让一个对象在界面中根据路径移动。
路径原理
实际上在计算机中的路径是由点来构成的,那么我们要绘制出一条路径就需要定义很多点吗?
并不是要定义很多点,我们只需要定义基础的两个或者多个点就能通过Phaser描述出一条路径。
绘制一条路径
代码如下 | 复制代码 |
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <script src="js/phaser.min.js"></script> </head> <body> <div id="phaser-example"></div> <script> }); var PhaserGame = function () { PhaserGame.prototype = { // 生成不同y位置 // 通过X轴生成路径 // 绘制线条 /* debug */ }; |
让图形根据路径移动
代码如下 | 复制代码 |
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <script src="js/phaser.min.js"></script> </head> <body> <div id="phaser-example"></div> <script> }); var PhaserGame = function () { this.bmd = null; this.points = { this.preload = function() { // 当预加载数据完成后,执行create函数 PhaserGame.prototype = { create: function () { this.stage.backgroundColor = '#204090'; this.bmd = this.add.bitmapData(this.game.width, this.game.height); var py = this.points.y; for (var i = 0; i < py.length; i++) this.plot(); }, plot: function () { this.bmd.clear(); var x = 1 / game.width; for (var i = 0; i <= 1; i += x) // var px = this.math.bezierInterpolation(this.points.x, i); var px = this.math.catmullRomInterpolation(this.points.x, i); this.bmd.rect(px, py, 1, 1, 'rgba(255, 255, 255, 1)'); console.log(px%2); } } /* debug */ }; game.state.add('Game', PhaserGame, true); |