Shake position
Introduction¶
Shake position of game object.
- Author: Rex
- Behavior of game object
Live demos¶
Usage¶
Install plugin¶
Load minify file¶
- Load plugin (minify file) in preload stage
scene.load.plugin('rexshakepositionplugin', 'https://raw.githubusercontent.com/rexrainbow/phaser3-rex-notes/master/dist/rexshakepositionplugin.min.js', true);
- Add shake-position behavior
var shakePosition = scene.plugins.get('rexshakepositionplugin').add(gameObject, config);
Import plugin¶
- Install rex plugins from npm
npm i phaser3-rex-plugins
- Install plugin in configuration of game
import ShakePositionPlugin from 'phaser3-rex-plugins/plugins/shakeposition-plugin.js'; var config = { // ... plugins: { global: [{ key: 'rexShakePosition', plugin: ShakePositionPlugin, start: true }, // ... ] } // ... }; var game = new Phaser.Game(config);
- Add shake-position behavior
var shakePosition = scene.plugins.get('rexShakePosition').add(gameObject, config);
Import class¶
- Install rex plugins from npm
npm i phaser3-rex-plugins
- Import class
import ShakePosition from 'phaser3-rex-plugins/plugins/shakeposition.js';
- Add shake-position behavior
var shakePosition = new ShakePosition(gameObject, config);
Create instance¶
var shake = scene.plugins.get('rexShake').add(gameObject, {
// mode: 1, // 0|'effect'|1|'behavior'
// duration: 500,
// magnitude: 10,
// magnitudeMode: 1, // 0|'constant'|1|'decay'
// axis: 0, //0|'both'|'h&v'|1|'horizontal'|'h'|2|'vertical'|'v'
});
mode
:'effect'
, or0
: Shake position in'poststep'
game event, and restore in'prestep'
game event.'behavior'
, or1
: Shake position in'preupdate'
scene event.
duration
: Duration of shaking, in millisecond.magnitude
: The strength of the shake, in pixels.magnitudeMode
:'constant'
, or0
: Constant strength of the shake.'decay'
, or1
: Decay the strength of the shake.
axis
:'both'
,'h&v'
,'x&y'
, or0
: Changing position on all directions.'horizontal'
,'h'
,'x'
, or1
: Changing position on horizontal/x axis.'vertical'
,'v'
,'y'
, or2
: Changing position on vertical/y axis.
Start shaking¶
shake.shake();
// shake.shake(duration, magnitude);
or
shake.shake({
duration: 500,
magnitude: 10
});
Stop shakeing¶
shake.stop();
Enable¶
- Enable/resume (default)
or
shake.setEnable();
shake.enable = true;
- Disable/pause
or
shake.setEnable(false);
shake.enable = false;
Set updating mode¶
shake.setMode(mode);
mode
:'effect'
, or0
: Shake position in post-update stage, and restore in pre-update stage.'behavior'
, or1
: Shake position in pre-update stage.
Set duration¶
shake.setDuration(duration);
// shake.duration = duration;
Set magnitude¶
shake.setMagnitude(magnitude);
shake.magnitude = magnitude;
magnitude
: The strength of the shake, in pixels.
Set magnitude mode¶
shake.setMagnitudeMode(magnitudeMode);
// shake.magnitudeMode = magnitudeMode;
magnitudeMode
:'constant'
, or0
: Constant strength of the shake.'decay'
, or1
: Decay the strength of the shake.
Set axis mode¶
shake.setAxisMode(axis);
axis
:'both'
,'h&v'
,'x&y'
, or0
: Dragging on all directions.'horizontal'
,'h'
,'x'
, or1
: Dragging on horizontal/x axis.'vertical'
,'v'
,'y'
, or2
: Dragging on vertical/y axis.
Events¶
- On reached target
shake.on('complete', function(gameObject, shake){});
Status¶
- Is shakeing
var isRunning = shake.isRunning;