Line
Introduction¶
Draw a line with start/end/body textures, extended from RenderTexture game object.
- Author: Rex
- Game object
Live demos¶
Usage¶
Install plugin¶
Load minify file¶
- Load plugin (minify file) in preload stage
scene.load.plugin('rexlineplugin', 'https://raw.githubusercontent.com/rexrainbow/phaser3-rex-notes/master/dist/rexlineplugin.min.js', true);
- Add line object
var line = scene.add.rexLine(config);
Import plugin¶
- Install rex plugins from npm
npm i phaser3-rex-plugins
- Install plugin in configuration of game
import LinePlugin from 'phaser3-rex-plugins/plugins/line-plugin.js'; var config = { // ... plugins: { global: [{ key: 'rexLinePlugin', plugin: LinePlugin, start: true }, // ... ] } // ... }; var game = new Phaser.Game(config);
- Add line object
var line = scene.add.rexLine(config);
Import class¶
- Install rex plugins from npm
npm i phaser3-rex-plugins
- Import class
import Line from 'phaser3-rex-plugins/plugins/line.js';
- Add line object
var line = new Line(scene, config); scene.add.existing(line);
Create instance¶
var line = scene.add.rexLine({
start: {
x: 0, y: 0,
key: undefined, frame: undefined, origin: 0.5,
},
// start: key,
// start: undefined,
end: {
x: 0, y: 0,
key: undefined, frame: undefined, origin: 1,
},
// end: key,
// end: undefined,
body: {
key: undefined, frame: undefined, extendMode: 1,
width: undefined,
},
// body: key,
});
start
: Configuration of line-start. Or texture key of line-start.start.x
,start.y
: Position of line-start.start.key
,start.frame
: Texrure of line-start.start.origin
: Origin of line-start. Default is0.5
.
end
: Configuration of line-end. Or texture key of line-end.end.x
,end.y
: Position of line-end.end.key
,end.frame
: Texrure of line-end.end.origin
: Origin of line-end. Default is1
.
body
: Configuration of line-body. Or texture key of line-body.body.key
,body.frame
: Texrure of line-body. Line-body will be drawn repeatedly.body.extendMode
: Extend mode of line-body.0
, or'scale'
: Draw line-body with scaled image game object.1
, or'repeat'
: Draw line-body with tile-sprute game object. (Default value)
body.width
: Line width.
Custom class¶
- Define class
class MyLine extends Line { constructor(scene, config) { super(scene, config); // ... scene.add.existing(this); } // ... // preUpdate(time, delta) {} }
scene.add.existing(gameObject)
: Adds an existing Game Object to this Scene.- If the Game Object renders, it will be added to the Display List.
- If it has a
preUpdate
method, it will be added to the Update List.
- Create instance
var line = new MyLine(scene, config);
Position of line-start/line-end¶
- Line start
- Get
var x0 = line.x0; var y0 = line.y0;
- Set
or
line.setLineStartPosition(x, y);
line.x0 = x; line.y0 = y;
- Get
- Line end
- Get
var x1 = line.x1; var y1 = line.y1;
- Set
or
line.setLineEndPosition(x, y);
line.x1 = x; line.y1 = y;
- Get
Set textures¶
- Line-start
- Set line-start texture
line.setLineStartTexture(key, frameName);
- Set origin of line-start texture
line.setLineStartOrigin(origin);
origin
:0
~1
. Default is0
, to align the left side of line-start texture with start position.
- Set line-start texture
- Line-end
- Set line-end texture
line.setLineEndTexture(key, frameName);
- Set origin of line-end texture
line.setLineEndOrigin(origin);
origin
:0
~1
. Default is1
, to align the right side of line-end texture with end position.
- Set line-end texture
- Line-body
- Set line-body texture
line.setLineBodyTexture(key, frameName);
- Set line-body extend mode
line.setLineBodyExtendMode(mode);
mode
:0
, or'scale'
: Draw line-body with scaled image game object.1
, or'repeat'
: Draw line-body with tile-sprute game object.
- Set line-body width
line.setLineBodyWidth(width);
- Set line-body texture
Other properties¶
See game object
Create mask¶
var mask = line.createBitmapMask();
See mask
Shader effects¶
Support preFX and postFX effects