An open API service indexing awesome lists of open source software.

https://github.com/tfkfan/phaser3-react-template

Phaser3, react, typescript, webpack, websocket template
https://github.com/tfkfan/phaser3-react-template

game phaser phaser3 react typescript websocket

Last synced: 9 months ago
JSON representation

Phaser3, react, typescript, webpack, websocket template

Awesome Lists containing this project

README

          




header


Phaser 3 React TypeScript Starter Template



A starter template for Phaser 3 with TypeScript and webpack for building excellent html5-games that work great in the browser and on mobile devices.






Key Features
Preview
How To Use
React controls
Websocket support
Credits

---

## Key Features

- All newest ES 2020 features
- Prettier
- Webpack dev server
- Includes Phaser 3 TypeScript typings
- For development and production builds
- React gui development
- Websocket integration

## Preview

This is what you get after installing this template. A simple and clean starter template written in TypeScript.

## How To Use

To clone and run this template, you'll need [Git](https://git-scm.com) and [Node.js](https://nodejs.org/en/download/) (which comes with [npm](http://npmjs.com)) installed on your computer. From your command line:

```bash
# Clone this repository (yes, npx not npm)
$ git clone https://github.com/tfkfan/phaser3-react-template.git

# Go into the repository
$ cd phaser3-react-template

# Install dependencies
$ npm install

# Start the local development server (on port 8080)
$ npm start

# Ready for production?
# Build the production ready code to the /dist folder
$ npm run build
```

## React controls

This template allows to use react hooks outside of react components

To use this take a look to /src/global-state.ts file to create your own handlers

To register new handler write inside your React functional component:
```typescript
const [fps, setFps] = useState(0);
const [version, setVersion] = useState('');

useGlobalReg({
setVersion,
setFps
});
```

To use it inside phaser game:

```typescript
useGlobalState(state => state.setVersion(`Phaser v${Phaser.VERSION}`));
```
## Websocket support

Use GameWebSocket class to communicate with ws server...

First, initialize websocket to communicate with specific server host:

```typescript
webSocket.initConnection("")
```

Then use functionality directly:

```typescript
webSocket.on(MessageType.UPDATE, data => {

}, this)
```

```typescript
webSocket.send(MessageType.PLAYER_KEY_DOWN, {inputId: 'RIGHT', state: false});
```

## Credits

A huge thank you to Rich [@photonstorm](https://github.com/photonstorm) for creating Phaser