Added phaser
This commit is contained in:
parent
fbf02c26e1
commit
6ac999baa0
37
client/src/components/phaser.combat.js
Executable file
37
client/src/components/phaser.combat.js
Executable file
@ -0,0 +1,37 @@
|
||||
const Phaser = require('phaser');
|
||||
|
||||
class PhaserCombat extends Phaser.Scene {
|
||||
preload() {
|
||||
this.load.setBaseURL('http://labs.phaser.io');
|
||||
this.load.image('sky', 'assets/skies/space3.png');
|
||||
this.load.image('logo', 'assets/sprites/bullet.png');
|
||||
this.load.image('red', 'assets/particles/red.png');
|
||||
}
|
||||
|
||||
create() {
|
||||
this.add.image(400, 300, 'sky');
|
||||
const particles = this.add.particles('red');
|
||||
const emitter = particles.createEmitter({
|
||||
speed: 100,
|
||||
scale: { start: 1, end: 0 },
|
||||
blendMode: 'ADD',
|
||||
});
|
||||
this.logo = this.physics.add.image(400, 100, 'logo');
|
||||
this.logo.x = -100;
|
||||
this.direction = true;
|
||||
emitter.startFollow(this.logo);
|
||||
}
|
||||
|
||||
shootRight() {
|
||||
this.logo.x = -1;
|
||||
this.logo.setVelocity(500, 0);
|
||||
}
|
||||
|
||||
shootLeft() {
|
||||
this.logo.x = 610;
|
||||
this.logo.setVelocity(-500, 0);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
module.exports = PhaserCombat;
|
||||
53
client/src/components/phaser.container.jsx
Executable file
53
client/src/components/phaser.container.jsx
Executable file
@ -0,0 +1,53 @@
|
||||
const preact = require('preact');
|
||||
const { connect } = require('preact-redux');
|
||||
const Phaser = require('phaser');
|
||||
const PhaserCombat = require('./phaser.combat');
|
||||
|
||||
const addState = connect(
|
||||
function receiveState(state) {
|
||||
const { game, activeSkill, activeIncoming } = state;
|
||||
return {game, activeSkill, activeIncoming };
|
||||
}
|
||||
);
|
||||
|
||||
class PhaserInstance extends preact.Component {
|
||||
constructor(props) {
|
||||
super(props);
|
||||
this.props = props;
|
||||
}
|
||||
|
||||
componentWillReceiveProps(nextProps) {
|
||||
if (nextProps.activeIncoming != null) {
|
||||
this.PhaserCombat.shootLeft();
|
||||
} else {
|
||||
this.PhaserCombat.shootRight();
|
||||
}
|
||||
}
|
||||
|
||||
componentDidMount() {
|
||||
// now mounted, can freely modify the DOM:
|
||||
this.PhaserCombat = new PhaserCombat();
|
||||
const config = {
|
||||
type: Phaser.AUTO,
|
||||
width: 600,
|
||||
height: 400,
|
||||
parent: 'phaser-example',
|
||||
physics: {
|
||||
default: 'arcade',
|
||||
arcade: {
|
||||
gravity: { y: 0 },
|
||||
},
|
||||
},
|
||||
scene: this.PhaserCombat,
|
||||
};
|
||||
const game = new Phaser.Game(config);
|
||||
}
|
||||
|
||||
render() {
|
||||
return (
|
||||
<div id="phaser-example" style="overflow: hidden;">
|
||||
</div>
|
||||
);
|
||||
}
|
||||
}
|
||||
module.exports = addState(PhaserInstance);
|
||||
Loading…
x
Reference in New Issue
Block a user