npm package: @phasereditor2d/scripts-camera
Description: Audio scripts for Phaser Editor 2D.
Author: Phaser Editor 2D
Latest version: 1.0.5

# Phaser Editor 2D Camera Scripts (library)

This project contains a few Phaser Editor 2D scripts for handling the camera.

These script nodes are very basic and may fit on any Phaser Editor 2D project.

The scripts are coded in TypeScript with ES modules.

## Installing (NPM)

This package depends on the following packages:

- `@phasereditor2d/scripts-core`
- `@phasereditor2d/scripts-simple-animations`

To install this in your game you have to install dependencies too:

```
npm install @phasereditor2d/scripts-core
npm install @phasereditor2d/scripts-simple-animations
npm install @phasereditor2d/scripts-camera
```

Also, you should add this package to the `phasereditor2d.config.json` file in your project, in the `scripts` section:

```json
{
    "scripts": [
        "@phasereditor2d/scripts-core",
        "@phasereditor2d/scripts-simple-animations",
        "@phasereditor2d/scripts-camera",
    ]
}
```
## Installing (vanilla JavaScript)

* Get the files in the [browser](./browser/) folder and copy them into your JavaScript project. It includes Phaser Editor 2D files, JavaScript files, and TypeScript type definitions.
* Add a `script` tag to the `index.html` file to load the `lib/phasereditor2d_scripts_camera.js` file.

## Summary

This library provides a couple of actions for handle the camera. As a reminder, an action is executed by an event script or another action.

The actions:

* **Zoom Camera Action** - Executes the zoom camera effect.
* **Shake Camera Action** - Executes the shake camera effect.
* **Flash Camera Action** - Executes the flash camera effect.
* **Fade Camera Action** - Executes the fade camera effect.
* **Camera Start Follow Action** - The camera starts following the game object.
* **Camera Stop Follow Action** - Stops the camera follow.

## Zoom Camera Action

*Class: `ZoomCameraAction`*

This action runs the [Zoom effect](https://newdocs.phaser.io/docs/3.70.0/focus/Phaser.Cameras.Scene2D.Camera-zoomTo) of the camera.

You can change how much the camera zooms with the **Zoom** property.

You can configure the duration and ease of the effect by adding the [Duration Config](https://github.com/PhaserEditor2D/phasereditor2d-scripts-simple-animations#duration-config) and [Ease Config](https://github.com/PhaserEditor2D/phasereditor2d-scripts-simple-animations#ease-config) components of the `@phasereditor2d/scripts-simple-animations` library.

## Shake Camera Action

*Class: `ShakeCameraAction`*

This action runs the [Shake effect](https://newdocs.phaser.io/docs/3.70.0/focus/Phaser.Cameras.Scene2D.Camera-shake) of the camera.

You can tweak the effect by setting the **Intensity**, **Force**.

You can configure the duration of the effect by adding the [Duration Config](https://github.com/PhaserEditor2D/phasereditor2d-scripts-simple-animations#duration-config) component of the `@phasereditor2d/scripts-simple-animations` library.

## Flash Camera Action

*Class: `FlashCameraActionScript`*

This action runs the [Flash effect](https://newdocs.phaser.io/docs/3.70.0/focus/Phaser.Cameras.Scene2D.Camera-flash) of the camera.

You can tweak the effect by setting the **Color** property. 

You can configure the duration of the effect by adding the [Duration Config](https://github.com/PhaserEditor2D/phasereditor2d-scripts-simple-animations#duration-config) component of the `@phasereditor2d/scripts-simple-animations` library.

## Fade Camera Action

*Class: `FadeCameraActionScript`*

This action runs the [Fade effect](https://newdocs.phaser.io/docs/3.70.0/focus/Phaser.Cameras.Scene2D.Camera-fade) of the camera.

You can tweak the effect by setting the **Color** and **Fade Direction** properties. 

You can configure the duration of the effect by adding the [Duration Config](https://github.com/PhaserEditor2D/phasereditor2d-scripts-simple-animations#duration-config) component of the `@phasereditor2d/scripts-simple-animations` library.

## Camera Start Follow Action

*Class: `CameraStartFollowActionScript`*

With this action the camera [starts following](https://newdocs.phaser.io/docs/3.70.0/focus/Phaser.Cameras.Scene2D.Camera-startFollow) the script's game object.

You can configure the moving effect with the **Round Pixels**, **Lerp X**, **Lerp Y**, **Offset X**, **Offset Y** parameters.

## Camera Stop Follow Action

*Class: `CameraStopFollowActionScript`*

This action stops the camera following of the script's game object.