<footer><div id=version></div></footer>
html, body {
height: 100%;
}
body {
margin: 0;
padding: 0;
background: #111;
color: #eee;
font: caption;
}
#version {
position: absolute;
left: 5px;
top: 605px;
}
'use strict'
class Demo extends Phaser.Scene {
constructor() {
super({
key: 'examples'
})
}
preload() {
var url;
url = 'https://raw.githubusercontent.com/rexrainbow/phaser3-rex-notes/master/dist/rexvirtualjoystickplugin.min.js';
this.load.plugin('rexvirtualjoystickplugin', url, true);
}
create() {
this.joyStick = this.plugins.get('rexvirtualjoystickplugin').add(this, {
x: 400,
y: 300,
radius: 100,
base: this.add.circle(0, 0, 100, 0x888888),
thumb: this.add.circle(0, 0, 50, 0xcccccc),
// dir: '8dir', // 'up&down'|0|'left&right'|1|'4dir'|2|'8dir'|3
// forceMin: 16,
// enable: true
})
.on('update', this.dumpJoyStickState, this);
this.text = this.add.text(0, 0);
this.dumpJoyStickState();
}
dumpJoyStickState() {
var cursorKeys = this.joyStick.createCursorKeys();
var s = 'Key down: ';
for (var name in cursorKeys) {
if (cursorKeys[name].isDown) {
s += `${name} `;
}
}
s += `
Force: ${Math.floor(this.joyStick.force * 100) / 100}
Angle: ${Math.floor(this.joyStick.angle * 100) / 100}
`;
s += '\nTimestamp:\n';
for (var name in cursorKeys) {
var key = cursorKeys[name];
s += `${name}: duration=${key.duration / 1000}\n`;
}
this.text.setText(s);
}
}
var config = {
type: Phaser.AUTO,
parent: 'phaser-example',
width: 800,
height: 600,
scale: {
mode: Phaser.Scale.FIT,
autoCenter: Phaser.Scale.CENTER_BOTH,
},
scene: Demo,
backgroundColor: 0x333333
};
var game = new Phaser.Game(config);
View Compiled
This Pen doesn't use any external CSS resources.