Level counter
Introduction¶
Map level value from experience value, by callback or a number array.
- Author: Rex
- Object
Live demos¶
Usage¶
Install plugin¶
Load minify file¶
- Load plugin (minify file) in preload stage
scene.load.plugin('rexlevelcounterplugin', 'https://raw.githubusercontent.com/rexrainbow/phaser3-rex-notes/master/dist/rexlevelcounterplugin.min.js', true); - Add level-counter object
var levelCounter = scene.plugins.get('rexlevelcounterplugin').add(config);
Import plugin¶
- Install rex plugins from npm
npm i phaser3-rex-plugins - Install plugin in configuration of game
import LevelCounterPlugin from 'phaser3-rex-plugins/plugins/levelcounter-plugin.js'; var config = { // ... plugins: { global: [{ key: 'rexLevelCounter', plugin: LevelCounterPlugin, start: true }, // ... ] } // ... }; var game = new Phaser.Game(config); - Add level-counter object
var levelCounter = scene.plugins.get('rexLevelCounter').add(config);
Import class¶
- Install rex plugins from npm
npm i phaser3-rex-plugins - Import class
import LevelCounter from 'phaser3-rex-plugins/plugins/levelcounter.js'; - Add level-counter object
var levelCounter = new LevelCounter(config);
Create instance¶
var levelCounter = scene.plugins.get('rexLevelCounter').add({
table: function(level) { return level * 100; },
// table: [0, 100, 200, 300,],
// maxLevel: -1,
// exp: 0,
});
table: Level table, return experience value from level value. Level value starts from0.- A callback
function(level) { return experience; } - A number array : Experience value of each level.
- A callback
maxLevel:undefined: Default value- No upper limit for callback level table.
(table.length - 1)for number array level table.
- A number : Maximum level value
exp: Initial experience value. Default value is0.
Accumulate experience¶
- Accumulate experience
or
levelCounter.gainExp(incExp); // levelCounter.exp += incExp;levelCounter.gainExp(incExp, callback, scope);- Will fire
'levelup'event, or invokecallbackmany times.function(level, fromExp, toExp, levelStartExp, levelEndExp){ }level: To next levelfromExp,toExp: Experience increment fromfromExptotoExp.levelStartExp,levelEndExp: Range of this level.
- Will fire
- Reset experience value
levelCounter.resetExp(exp);- Won't fire
'levelup'event.
- Won't fire
- Force level up
or
levelCounter.setLevel(level);levelCounter.setLevel(level, callback, scope);- Will fire
'levelup'event, or invokecallbackmany times.function(level, fromExp, toExp, levelStartExp, levelEndExp){ }level: To next levelfromExp,toExp: Experience increment fromfromExptotoExp.levelStartExp,levelEndExp: Range of this level.
- Will fire
Level and experience¶
- Get current experience
var exp = levelCounter.getExp(); // var exp = levelCounter.exp; - Get current level
var level = levelCounter.getLevel(); // var level = levelCounter.level; - Get current required experience to next level
var exp = levelCounter.requiredExp; - Get experience of level
var exp = levelCounter.getExp(level); - Get level from experience
var level = levelCounter.getLevel(exp); - Get required experience to level
var exp = levelCounter.getRequiredExpToNextLevel(level); // var exp = levelCounter.getRequiredExpToNextLevel(level, exp);
Events¶
- Level-up when accumulating experience
levelCounter.on('levelup', function(level, fromExp, toExp, levelStartExp, levelEndExp){ }, scope);level: To next levelfromExp,toExp: Experience increment fromfromExptotoExp.levelStartExp,levelEndExp: Range of this level.