Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/proyecto26/phaser-kinetic-scrolling-plugin

Kinetic Scrolling plugin for Canvas using Phaser Framework
https://github.com/proyecto26/phaser-kinetic-scrolling-plugin

gulp html5 html5-canvas javascript javascript-game js phaser phaser-camera phaser-ce phaser-framework phaser-game phaser-plugin phaserjs pixijs scrolling webgl

Last synced: 8 days ago
JSON representation

Kinetic Scrolling plugin for Canvas using Phaser Framework

Awesome Lists containing this project

README

        



MIT license


Current npm package version


Maintenance





Downloads


Total downloads


Follow @jdnichollsc

# Kinetic Scrolling Plugin for Phaser Framework

![Kinetic Scrolling Plugin](https://raw.githubusercontent.com/jdnichollsc/Phaser-Kinetic-Scrolling-Plugin/main/img/plugin.png)

The vertical and horizontal scrolling is a very useful feature in the games for example to display a section of levels and with this plugin you can simulate the scrolling within a **canvas** element of **HTML5**... so check this awesome plugin for **Phaser Framework**!

> Kinetic scrolling based on http://ariya.ofilabs.com/2013/11/javascript-kinetic-scrolling-part-2.html

## Download the Plugin

[![NPM](https://nodei.co/npm/phaser-kinetic-scrolling-plugin.png?downloads=true&downloadRank=true&stars=true)](https://nodei.co/npm/phaser-kinetic-scrolling-plugin/)

Install via [bower](http://bower.io)

`bower i phaser-kinetic-scrolling-plugin --save`

Install via [npm](https://www.npmjs.com)

`npm i phaser-kinetic-scrolling-plugin --save`

## Load the Plugin

```javascript
this.game.kineticScrolling = this.game.plugins.add(Phaser.Plugin.KineticScrolling);
```

## Change Default Settings of the Plugin - *_It isn't necessary, default is horizontal_*

```javascript
this.game.kineticScrolling.configure({
kineticMovement: true,
timeConstantScroll: 325, //really mimic iOS
horizontalScroll: true,
verticalScroll: false,
horizontalWheel: true,
verticalWheel: false,
deltaWheel: 40,
onUpdate: null //A function to get the delta values if it's required (deltaX, deltaY)
});
```

## Start the Plugin

```javascript
this.game.kineticScrolling.start();
```

## Stop the Plugin

```javascript
this.game.kineticScrolling.stop();
```

## Full Example

```javascript
var game = new Phaser.Game(1024, 768, Phaser.AUTO, '', {
init: function () {

//Load the plugin
this.game.kineticScrolling = this.game.plugins.add(Phaser.Plugin.KineticScrolling);

//If you want change the default configuration before start the plugin
},
create: function () {

//Starts the plugin
this.game.kineticScrolling.start();

//If you want change the default configuration after start the plugin

this.rectangles = [];

var initX = 50;

for (var i = 0; i < 26; i++) {
this.rectangles.push(this.createRectangle(initX, this.game.world.centerY - 100, 250, 200));
this.index = this.game.add.text(initX + 125, this.game.world.centerY, i + 1,
{ font: 'bold 150px Arial', align: "center" });
this.index.anchor.set(0.5);
initX += 300;
}

//Changing the world width
this.game.world.setBounds(0, 0, 320 * this.rectangles.length, this.game.height);
},
createRectangle: function (x, y, w, h) {
var sprite = this.game.add.graphics(x, y);
sprite.beginFill(Phaser.Color.getRandomColor(100, 255), 1);
sprite.bounds = new PIXI.Rectangle(0, 0, w, h);
sprite.drawRect(0, 0, w, h);
return sprite;
}
});
```

## Examples
The repository has some examples of the plugin, to run the examples created by the community execute the command `gulp examples` from the terminal:
- Horizontal scrolling
- Horizontal scrolling with scrollbar
- Horizontal scrolling and pressing events
- Horizontal and Vertical scrolling (Mouse wheel too)
- onUpdate callback to track delta

## Other Projects
- **[IonPhaser](http://market.ionic.io/plugins/ionphaser)**
- **[Rotate Sprite Extension](https://github.com/jdnichollsc/Phaser-Rotate-Sprite-Extension)**

## Contributing ✨
When contributing to this repository, please first discuss the change you wish to make via issue, email, or any other method with the owners of this repository before making a change.
Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are **greatly appreciated** ❤️.
You can learn more about how you can contribute to this project in the [contribution guide](https://github.com/proyecto26/Phaser-Kinetic-Scrolling-Plugin/blob/master/CONTRIBUTING.md).

## Collaborators ✨
[jdnichollsc](https://github.com/jdnichollsc) | [daniel-mf](https://github.com/daniel-mf) | [VitaZheltyakov](https://github.com/VitaZheltyakov) | [iamchristopher](https://github.com/iamchristopher) | [daaaabeen](https://github.com/daaaabeen) |
:---: |:---: |:---: |:---: |:---: |
[Nicholls](mailto:[email protected]) | [Daniel](mailto:[email protected]) | [Vitaliy](mailto:[email protected]) | [Chris Wright](https://twitter.com/jorbascrumps) | [Daaaabeen](mailto:[email protected]) |

## Supporting 🍻
I believe in Unicorns 🦄
Support [me](http://www.paypal.me/jdnichollsc/2), if you do too.

Donate **Ethereum**, **ADA**, **BNB**, **SHIBA**, **USDT**, **DOGE**:

![Wallet address](https://user-images.githubusercontent.com/2154886/123501719-84bf1900-d60c-11eb-882c-98a499cea323.png)

> Wallet address: 0x3F9fA8021B43ACe578C2352861Cf335449F33427

Please let us know your contributions! 🙏

## License ⚖️
This repository is available under the [MIT License](https://github.com/proyecto26/Phaser-Kinetic-Scrolling-Plugin/blob/master/LICENSE).

## Happy scrolling 💯
Made with <3