Skip to content

Latest commit

History

History
81 lines (68 loc) 路 2.58 KB

README.md

File metadata and controls

81 lines (68 loc) 路 2.58 KB

IonPhaser CE for React

Introduction

React specific wrapper for ion-phaser-ce component.

Why?

Most people who use React don鈥檛 use Web Components and there're some limitations handling data with Custom Components from React. Thus, this React component was created not to need to reference their Custom Elements using a ref and manually attach the game, this makes working with IonPhaser CE not cumbersome 馃憤馃徎

Usage

  • Import Phaser CE dependencies before, check the example here:
window.PIXI = require('phaser-ce/build/custom/pixi');
window.p2 = require('phaser-ce/build/custom/p2');
window.Phaser = require('phaser-ce/build/custom/phaser-split');
  • Using the IonPhaserCe component:
import React, { useRef, useState } from 'react'
import Phaser from 'phaser-ce'
import { IonPhaserCe } from '@ion-phaser-ce/react'

const game = {
  width: "100%",
  height: "100%",
  renderer: Phaser.AUTO,
  state: {
    init: function() {
      this.stage.backgroundColor = '#24252A';
    },
    create: function() {
      this.helloWorld = this.add.text(
        this.game.world.centerX, 
        this.game.world.centerY, 
        "Hello World", { 
          font: "40px Arial", 
          fill: "#ffffff" 
        }
      );
      this.helloWorld.anchor.set(0.5);
    },
    update: function() {
      this.helloWorld.angle += 1;
    }
  }
}

export default function App () {
  const gameRef = useRef(null)
  // Call `setInitialize` when you want to initialize your game! :)
  const [initialize, setInitialize] = useState(false)
  const destroy = () => {
    if (gameRef.current) {
      gameRef.current.destroy()
    }
    setInitialize(false)
  }
  return (
    <>
      <IonPhaserCe ref={gameRef} game={game} initialize={initialize} />
      <button onClick={() => setInitialize(true)}>Initialize</button>
      <button onClick={destroy}>Destroy</button>
    </>
  )
}

Supporting 馃嵒

I believe in Unicorns 馃 Support me, if you do too. Professionally supported @ion-phaser-ce/react is coming soon

Happy coding 馃挴

Made with 鉂わ笍