Giter Site home page Giter Site logo

phaser-mario's Introduction

What

This is part of the Phaser Component Library.

A "mario" is a player-controlled character than can move on the X axis and jump on the Y axis. It is affected by gravity, has a given amount of health, and uses WASD/arrow keys and space bar to move.

How

npm install phaser-mario

Then, in your Phaser source code

import Mario from 'phaser-mario'

// in your game creation method:
this.game.physics.startSystem( Phaser.Physics.ARCADE )
this.game.physics.arcade.gravity.y = 500

// add a controllable (arrow keys/space bar) Mario-like player character
const mario = this.game.add.existing(new Mario({
    game: this.game,
    key: 'your-sprite-key',
    controls: true
}))

API

new Mario( { options } )

options

collideWorldBounds

Type: boolean
Default: false

Whether or not the mario collides with the world bounds.

controls

Type: boolean
Default: false

Whether or not the mario can be controlled by the player.

deadzone

Type: object: { left, width }
Default: {}

The camera's deadzone.

If left is exactly 1 or lower, a percentage of the screen width will be used; ditto for width. Otherwise, the defined pixel amount will be used.

follow

Type: boolean
Default: false

Whether or not the camera follows the mario.

frame

Type: string | number
Default: ''

See Sprite docs.

game

Required
Type: Phaser.Game

The game where this mario will live.

health

Type: number
Default: 1

This mario's starting health.

height

Type: number
Default: 64

This mario's height.

jump

Type: number
Default: -250

The jump force of the mario. Note that to jump up, this value must be negative.

jumps

Type: number
Default: 1

The number of times the mario can jump. Set to 2 for double-jump, for example.

key

Type: string | Phaser.RenderTexture | Phaser.BitmapData | PIXI.Texture
Default: ''

See Sprite docs.

speed

Type: number
Default: 350

The x-axis speed of the mario.

width

Type: number
Default: 64

This mario's width.

x

Type: number
Default: 0

The x-value of the mario's spawn location.

y

Type: number
Default: 0

The y-value of the mario's spawn location.

Properties

direction

Type: number

Shortcut to current mario X direction. -1 = left, 0 = no active X movement, 1 = right.

facing

Type: number

Shortcut to direction mario is facing. -1 = left, 1 = right.

opts

Type: object

The options initially passed to the Mario.

state

Type: Phaser.State

Shortcut to the current state object. Useful for accessing global properties from that state.

Versions

  • 1.1.2 - fixed opts reference bug in update and updated docs
  • 1.1.0 - fixed bug in update that prevented marios with controls: false from running

phaser-mario's People

Contributors

atilacamurca avatar safrmo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

phaser-mario's Issues

Inheritance issue

Using this version of the phaser-es6-webpack template, I can't extend the Mario class on its own.

Example:

import Phaser from 'phaser'
import Mario from 'phaser-mario'

export default class extends Mario {
    // ...
}

throws the error:

Uncaught TypeError: Class constructor cannot be invoked without 'new'

Only way I can find to create a descendant of the phaser-mario class is:

import Phaser from 'phaser'
import Mario from 'phaser-mario'

export default opts => {
    let mario = new Mario(opts)

    // set inherited values here

    return mario
}

You can still run game.add.existing(new DescendentOfMario(...)) in the game code this way, but it's odd that the expected extension method doesn't work.

Is this something wrong with the way the mario class is written?

Add inertia

Add option to glide to stop instead of hard stop when user lets go of directional key

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.