custom-pixi-particles 5.1.0 → 5.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +86 -13
- package/dist/index.d.ts +0 -2
- package/dist/index.js +0 -19
- package/dist/index.js.map +1 -1
- package/dist/lib/Particle.d.ts +21 -1
- package/dist/lib/Particle.js +35 -0
- package/dist/lib/Particle.js.map +1 -1
- package/dist/lib/behaviour/AngularVelocityBehaviour.d.ts +1 -1
- package/dist/lib/behaviour/AngularVelocityBehaviour.js +15 -9
- package/dist/lib/behaviour/AngularVelocityBehaviour.js.map +1 -1
- package/dist/lib/behaviour/ColorBehaviour.d.ts +0 -4
- package/dist/lib/behaviour/ColorBehaviour.js +19 -26
- package/dist/lib/behaviour/ColorBehaviour.js.map +1 -1
- package/dist/lib/behaviour/EmitDirectionBehaviour.js +3 -2
- package/dist/lib/behaviour/EmitDirectionBehaviour.js.map +1 -1
- package/dist/lib/behaviour/LifeBehaviour.js +6 -5
- package/dist/lib/behaviour/LifeBehaviour.js.map +1 -1
- package/dist/lib/behaviour/PositionBehaviour.d.ts +66 -0
- package/dist/lib/behaviour/PositionBehaviour.js +396 -78
- package/dist/lib/behaviour/PositionBehaviour.js.map +1 -1
- package/dist/lib/behaviour/RotationBehaviour.js +4 -0
- package/dist/lib/behaviour/RotationBehaviour.js.map +1 -1
- package/dist/lib/behaviour/SizeBehaviour.js +26 -15
- package/dist/lib/behaviour/SizeBehaviour.js.map +1 -1
- package/dist/lib/behaviour/TurbulenceBehaviour.js +12 -12
- package/dist/lib/behaviour/TurbulenceBehaviour.js.map +1 -1
- package/dist/lib/emission/StandardEmission.d.ts +2 -2
- package/dist/lib/emission/StandardEmission.js +2 -2
- package/dist/lib/emitter/Emitter.d.ts +1 -1
- package/dist/lib/emitter/Emitter.js +1 -1
- package/dist/lib/emitter/Emitter.js.map +1 -1
- package/dist/lib/parser/BehaviourParser.js +37 -1
- package/dist/lib/parser/BehaviourParser.js.map +1 -1
- package/dist/lib/pixi/Renderer.d.ts +2 -2
- package/dist/lib/pixi/Renderer.js +32 -19
- package/dist/lib/pixi/Renderer.js.map +1 -1
- package/dist/lib/util/MinMax.d.ts +34 -0
- package/dist/lib/util/MinMax.js +46 -0
- package/dist/lib/util/MinMax.js.map +1 -0
- package/dist/lib/util/Point.js +2 -2
- package/dist/lib/util/Point.js.map +1 -1
- package/dist/lib/util/ThereBack.d.ts +14 -0
- package/dist/lib/util/ThereBack.js +23 -0
- package/dist/lib/util/ThereBack.js.map +1 -0
- package/package.json +4 -3
- package/dist/lib/pixi/RendererEditor.d.ts +0 -116
- package/dist/lib/pixi/RendererEditor.js +0 -489
- package/dist/lib/pixi/RendererEditor.js.map +0 -1
package/README.md
CHANGED
|
@@ -1,21 +1,35 @@
|
|
|
1
1
|
# CustomPIXIParticles by [@lukasz-okuniewicz](http://github.com/lukasz-okuniewicz)
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
CustomPIXIParticles is a lightweight and flexible library for creating and managing particle effects in PIXI.js applications. It provides a simple API for defining particle emitters, textures, and configurations, allowing developers to create a wide range of visual effects with ease.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
### Features
|
|
6
|
+
* Easy-to-use API: Create particle emitters with just a few lines of code
|
|
7
|
+
* Flexible configuration: Customize particle behavior, appearance, and animation
|
|
8
|
+
* High performance: Render particles efficiently without impacting application performance
|
|
9
|
+
* Compatible with PIXI.js v7: Works seamlessly with the latest version of PIXI.js
|
|
10
|
+
|
|
11
|
+
### Versions Compatibility
|
|
12
|
+
|
|
13
|
+
| PixiJS | CustomPIXIParticles |
|
|
14
|
+
|---|---|
|
|
15
|
+
| v5.x - v6.x | v4.x |
|
|
16
|
+
| v7.x | v5.x |
|
|
6
17
|
|
|
7
|
-
|
|
18
|
+
### Demo
|
|
19
|
+
[custom-pixi-particles](http://particles.okuniewicz.eu/)
|
|
20
|
+
|
|
21
|
+
#### Installation:
|
|
8
22
|
|
|
9
23
|
```
|
|
10
24
|
npm install custom-pixi-particles
|
|
11
25
|
```
|
|
12
26
|
|
|
13
|
-
|
|
14
|
-
|
|
27
|
+
#### Usage:
|
|
28
|
+
Import or require the library:
|
|
15
29
|
```javascript
|
|
16
|
-
const
|
|
30
|
+
const customPixiParticles = require('custom-pixi-particles')
|
|
17
31
|
// or
|
|
18
|
-
import
|
|
32
|
+
import customPixiParticles from 'custom-pixi-particles'
|
|
19
33
|
```
|
|
20
34
|
|
|
21
35
|
```javascript
|
|
@@ -31,8 +45,29 @@ this.particles.play()
|
|
|
31
45
|
container.addChild(this.particles)
|
|
32
46
|
```
|
|
33
47
|
|
|
48
|
+
### API Reference
|
|
49
|
+
`create`
|
|
50
|
+
```javascript
|
|
51
|
+
// All possible params which can be passed during particles creation
|
|
52
|
+
this.particles = customPixiParticles.create({
|
|
53
|
+
textures: [String],
|
|
54
|
+
animatedSpriteZeroPad: Number,
|
|
55
|
+
animatedSpriteIndexToStart: Number,
|
|
56
|
+
emitterConfig: Object,
|
|
57
|
+
finishingTextures: [String],
|
|
58
|
+
vertices: Boolean,
|
|
59
|
+
position: Boolean,
|
|
60
|
+
rotation: Boolean,
|
|
61
|
+
uvs: Boolean,
|
|
62
|
+
tint: Boolean,
|
|
63
|
+
maxParticles: Number,
|
|
64
|
+
maxFPS: Number,
|
|
65
|
+
tickerSpeed: Number,
|
|
66
|
+
})
|
|
67
|
+
```
|
|
68
|
+
|
|
34
69
|
```javascript
|
|
35
|
-
//
|
|
70
|
+
// Callback function called when the particle animation completes.
|
|
36
71
|
this.particles.onComplete = () => {
|
|
37
72
|
//...
|
|
38
73
|
}
|
|
@@ -41,13 +76,51 @@ this.particles.onComplete = () => {
|
|
|
41
76
|
```javascript
|
|
42
77
|
// Define array of new textures
|
|
43
78
|
const newTextures = ['texture3.png', 'texture4.png']
|
|
44
|
-
//
|
|
79
|
+
// Updates the particle emitter's textures.
|
|
45
80
|
this.particles.setTextures(newTextures)
|
|
46
81
|
```
|
|
47
82
|
|
|
48
83
|
```javascript
|
|
49
|
-
//
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
84
|
+
// Updates the particle emitter's configuration.
|
|
85
|
+
this.particles.updateConfig({
|
|
86
|
+
// Update emitter configuration properties
|
|
87
|
+
})
|
|
53
88
|
```
|
|
89
|
+
|
|
90
|
+
```javascript
|
|
91
|
+
// Sets the paused state
|
|
92
|
+
pause(isPaused)
|
|
93
|
+
|
|
94
|
+
// Starts the emitter
|
|
95
|
+
start()
|
|
96
|
+
|
|
97
|
+
// Resets the particle emitters in this class without removing existing particles and plays them
|
|
98
|
+
play()
|
|
99
|
+
|
|
100
|
+
// Immediately stops emitting particles
|
|
101
|
+
stopImmediately()
|
|
102
|
+
|
|
103
|
+
// Destroy particles
|
|
104
|
+
destroy()
|
|
105
|
+
|
|
106
|
+
// Terminates the emitter
|
|
107
|
+
stop()
|
|
108
|
+
|
|
109
|
+
// Resets the emitters to their initial state
|
|
110
|
+
resetEmitter()
|
|
111
|
+
|
|
112
|
+
// Update textures used by the emitter
|
|
113
|
+
setTextures(textures)
|
|
114
|
+
|
|
115
|
+
// Updates the configuration of the emitter
|
|
116
|
+
updateConfig(config, resetDuration = true)
|
|
117
|
+
|
|
118
|
+
// Updates the position of the emitter
|
|
119
|
+
updatePosition(position, resetDuration = true)
|
|
120
|
+
|
|
121
|
+
// Clear pools
|
|
122
|
+
clearPool()
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
### Additional Resources
|
|
126
|
+
Editor for particles: [custom-pixi-particles-editor](https://github.com/lukasz-okuniewicz/custom-pixi-particles-editor)
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import Renderer from './lib/pixi/Renderer';
|
|
2
2
|
import { ICustomPixiParticlesSettings } from './lib/customPixiParticlesSettingsInterface';
|
|
3
|
-
import RendererEditor from './lib/pixi/RendererEditor';
|
|
4
3
|
/**
|
|
5
4
|
* Constructs a renderer for custom pixi particles
|
|
6
5
|
* @class Renderer
|
|
@@ -8,6 +7,5 @@ import RendererEditor from './lib/pixi/RendererEditor';
|
|
|
8
7
|
*/
|
|
9
8
|
declare const customPixiParticles: {
|
|
10
9
|
create(settings: ICustomPixiParticlesSettings): Renderer;
|
|
11
|
-
createTest(settings: ICustomPixiParticlesSettings): RendererEditor;
|
|
12
10
|
};
|
|
13
11
|
export { Renderer, customPixiParticles, ICustomPixiParticlesSettings };
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import Renderer from './lib/pixi/Renderer';
|
|
2
|
-
import RendererEditor from './lib/pixi/RendererEditor';
|
|
3
2
|
/**
|
|
4
3
|
* Constructs a renderer for custom pixi particles
|
|
5
4
|
* @class Renderer
|
|
@@ -24,24 +23,6 @@ const customPixiParticles = {
|
|
|
24
23
|
tickerSpeed,
|
|
25
24
|
});
|
|
26
25
|
},
|
|
27
|
-
createTest(settings) {
|
|
28
|
-
const { textures, emitterConfig, animatedSpriteZeroPad = 2, animatedSpriteIndexToStart = 0, finishingTextures = [], vertices = true, position = true, rotation = true, uvs = true, tint = true, maxParticles = 10000, maxFPS = 60, tickerSpeed = 0.02, } = settings;
|
|
29
|
-
return new RendererEditor({
|
|
30
|
-
textures,
|
|
31
|
-
animatedSpriteZeroPad,
|
|
32
|
-
animatedSpriteIndexToStart,
|
|
33
|
-
emitterConfig,
|
|
34
|
-
finishingTextures,
|
|
35
|
-
vertices,
|
|
36
|
-
position,
|
|
37
|
-
rotation,
|
|
38
|
-
uvs,
|
|
39
|
-
tint,
|
|
40
|
-
maxParticles,
|
|
41
|
-
maxFPS,
|
|
42
|
-
tickerSpeed,
|
|
43
|
-
});
|
|
44
|
-
},
|
|
45
26
|
};
|
|
46
27
|
export { Renderer, customPixiParticles };
|
|
47
28
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,qBAAqB,CAAA;AAG1C;;;;GAIG;AACH,MAAM,mBAAmB,GAAG;IAC1B,MAAM,CAAC,QAAsC;QAC3C,MAAM,EACJ,QAAQ,EACR,aAAa,EACb,qBAAqB,GAAG,CAAC,EACzB,0BAA0B,GAAG,CAAC,EAC9B,iBAAiB,GAAG,EAAE,EACtB,QAAQ,GAAG,IAAI,EACf,QAAQ,GAAG,IAAI,EACf,QAAQ,GAAG,IAAI,EACf,GAAG,GAAG,IAAI,EACV,IAAI,GAAG,IAAI,EACX,YAAY,GAAG,KAAK,EACpB,MAAM,GAAG,EAAE,EACX,WAAW,GAAG,IAAI,GACnB,GAAG,QAAQ,CAAA;QACZ,OAAO,IAAI,QAAQ,CAAC;YAClB,QAAQ;YACR,qBAAqB;YACrB,0BAA0B;YAC1B,aAAa;YACb,iBAAiB;YACjB,QAAQ;YACR,QAAQ;YACR,QAAQ;YACR,GAAG;YACH,IAAI;YACJ,YAAY;YACZ,MAAM;YACN,WAAW;SACZ,CAAC,CAAA;IACJ,CAAC;CACF,CAAA;AAED,OAAO,EAAE,QAAQ,EAAE,mBAAmB,EAAgC,CAAA"}
|
package/dist/lib/Particle.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { Sprite } from 'pixi.js';
|
|
1
|
+
import { Sprite } from 'pixi.js-legacy';
|
|
2
2
|
import { Color, Point } from './util';
|
|
3
|
+
import ThereBack from './util/ThereBack';
|
|
3
4
|
/**
|
|
4
5
|
* Represents a particle object used in particle system simulations
|
|
5
6
|
*/
|
|
@@ -97,6 +98,8 @@ export default class Particle {
|
|
|
97
98
|
* Stores the radius of the particle
|
|
98
99
|
*/
|
|
99
100
|
radius: number;
|
|
101
|
+
radiusX: number;
|
|
102
|
+
radiusY: number;
|
|
100
103
|
/**
|
|
101
104
|
* Stores the starting radius of the particle
|
|
102
105
|
*/
|
|
@@ -173,6 +176,23 @@ export default class Particle {
|
|
|
173
176
|
x: number;
|
|
174
177
|
y: number;
|
|
175
178
|
};
|
|
179
|
+
fromAtoB: boolean;
|
|
180
|
+
fromAtoBTwoWays: boolean;
|
|
181
|
+
pointA: Point;
|
|
182
|
+
pointB: Point;
|
|
183
|
+
there: ThereBack;
|
|
184
|
+
back: ThereBack;
|
|
185
|
+
xStart: number;
|
|
186
|
+
yStart: number;
|
|
187
|
+
xTarget: number;
|
|
188
|
+
yTarget: number;
|
|
189
|
+
thereDuration: number;
|
|
190
|
+
backDuration: number;
|
|
191
|
+
progress: number;
|
|
192
|
+
time: number;
|
|
193
|
+
thereAmplitude: number;
|
|
194
|
+
backAmplitude: number;
|
|
195
|
+
direction: number;
|
|
176
196
|
/**
|
|
177
197
|
* Constructs a particle object
|
|
178
198
|
*/
|
package/dist/lib/Particle.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Color, Point } from './util';
|
|
2
|
+
import ThereBack from './util/ThereBack';
|
|
2
3
|
/**
|
|
3
4
|
* Represents a particle object used in particle system simulations
|
|
4
5
|
*/
|
|
@@ -61,6 +62,23 @@ class Particle {
|
|
|
61
62
|
* Stores the ending color of the particle
|
|
62
63
|
*/
|
|
63
64
|
this.colorEnd = new Color();
|
|
65
|
+
this.fromAtoB = false;
|
|
66
|
+
this.fromAtoBTwoWays = false;
|
|
67
|
+
this.pointA = new Point();
|
|
68
|
+
this.pointB = new Point();
|
|
69
|
+
this.there = new ThereBack();
|
|
70
|
+
this.back = new ThereBack();
|
|
71
|
+
this.xStart = 0;
|
|
72
|
+
this.yStart = 0;
|
|
73
|
+
this.xTarget = 0;
|
|
74
|
+
this.yTarget = 0;
|
|
75
|
+
this.thereDuration = 1;
|
|
76
|
+
this.backDuration = 1;
|
|
77
|
+
this.progress = 0;
|
|
78
|
+
this.time = 0;
|
|
79
|
+
this.thereAmplitude = 10;
|
|
80
|
+
this.backAmplitude = 10;
|
|
81
|
+
this.direction = 1;
|
|
64
82
|
this.reset();
|
|
65
83
|
}
|
|
66
84
|
/**
|
|
@@ -104,6 +122,23 @@ class Particle {
|
|
|
104
122
|
this.warpFov = 20;
|
|
105
123
|
this.warpStretch = 5;
|
|
106
124
|
this.warpDistanceScaleConverter = 2000;
|
|
125
|
+
this.fromAtoB = false;
|
|
126
|
+
this.fromAtoBTwoWays = false;
|
|
127
|
+
this.pointA.set(0, 0);
|
|
128
|
+
this.pointB.set(0, 0);
|
|
129
|
+
this.there.set('', '', '');
|
|
130
|
+
this.back.set('', '', '');
|
|
131
|
+
this.thereDuration = 1;
|
|
132
|
+
this.backDuration = 1;
|
|
133
|
+
this.thereAmplitude = 10;
|
|
134
|
+
this.backAmplitude = 10;
|
|
135
|
+
this.progress = 0;
|
|
136
|
+
this.direction = 1;
|
|
137
|
+
this.time = 0;
|
|
138
|
+
this.xStart = 0;
|
|
139
|
+
this.yStart = 0;
|
|
140
|
+
this.xTarget = 0;
|
|
141
|
+
this.yTarget = 0;
|
|
107
142
|
}
|
|
108
143
|
/**
|
|
109
144
|
* Checks if the particle is almost dead
|
package/dist/lib/Particle.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Particle.js","sourceRoot":"","sources":["../../src/lib/Particle.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;
|
|
1
|
+
{"version":3,"file":"Particle.js","sourceRoot":"","sources":["../../src/lib/Particle.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,7 @@ import Particle from '../Particle';
|
|
|
7
7
|
* @extends {Behaviour}
|
|
8
8
|
*/
|
|
9
9
|
export default class AngularVelocityBehaviour extends Behaviour {
|
|
10
|
+
protected priority: number;
|
|
10
11
|
private enabled;
|
|
11
12
|
private degrees;
|
|
12
13
|
private degreesVariance;
|
|
@@ -14,7 +15,6 @@ export default class AngularVelocityBehaviour extends Behaviour {
|
|
|
14
15
|
private maxRadiusVariance;
|
|
15
16
|
private minRadius;
|
|
16
17
|
private minRadiusVariance;
|
|
17
|
-
protected priority: number;
|
|
18
18
|
/**
|
|
19
19
|
* Initializes particle properties of the behaviour
|
|
20
20
|
*
|
|
@@ -10,6 +10,7 @@ import BehaviourNames from './BehaviourNames';
|
|
|
10
10
|
export default class AngularVelocityBehaviour extends Behaviour {
|
|
11
11
|
constructor() {
|
|
12
12
|
super(...arguments);
|
|
13
|
+
this.priority = 100;
|
|
13
14
|
this.enabled = false;
|
|
14
15
|
this.degrees = 0;
|
|
15
16
|
this.degreesVariance = 0;
|
|
@@ -17,7 +18,6 @@ export default class AngularVelocityBehaviour extends Behaviour {
|
|
|
17
18
|
this.maxRadiusVariance = 0;
|
|
18
19
|
this.minRadius = 0;
|
|
19
20
|
this.minRadiusVariance = 0;
|
|
20
|
-
this.priority = 100;
|
|
21
21
|
/**
|
|
22
22
|
* Initializes particle properties of the behaviour
|
|
23
23
|
*
|
|
@@ -26,11 +26,12 @@ export default class AngularVelocityBehaviour extends Behaviour {
|
|
|
26
26
|
*/
|
|
27
27
|
this.init = (particle) => {
|
|
28
28
|
particle.radiansPerSecond = math.degreesToRadians(this.degrees + this.varianceFrom(this.degreesVariance));
|
|
29
|
-
|
|
29
|
+
const radiusStart = this.maxRadius + this.varianceFrom(this.maxRadiusVariance);
|
|
30
|
+
particle.radiusStart = radiusStart;
|
|
30
31
|
particle.radiusEnd = this.minRadius + this.varianceFrom(this.minRadiusVariance);
|
|
31
32
|
particle.x = 0;
|
|
32
33
|
particle.y = 0;
|
|
33
|
-
particle.radius =
|
|
34
|
+
particle.radius = radiusStart;
|
|
34
35
|
particle.angle = 0;
|
|
35
36
|
};
|
|
36
37
|
/**
|
|
@@ -41,12 +42,17 @@ export default class AngularVelocityBehaviour extends Behaviour {
|
|
|
41
42
|
* @memberof AngularVelocityBehaviour
|
|
42
43
|
*/
|
|
43
44
|
this.apply = (particle, deltaTime) => {
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
particle.
|
|
45
|
+
const { radiusStart, radiusEnd, radiansPerSecond, lifeProgress } = particle;
|
|
46
|
+
const velocityAngle = particle.velocityAngle + radiansPerSecond * deltaTime;
|
|
47
|
+
const radius = radiusStart + (radiusEnd - radiusStart) * lifeProgress;
|
|
48
|
+
const movementX = Math.cos(velocityAngle) * radius;
|
|
49
|
+
const movementY = Math.sin(velocityAngle) * radius;
|
|
50
|
+
particle.velocityAngle = velocityAngle;
|
|
51
|
+
particle.radius = radius;
|
|
52
|
+
particle.movement.x = movementX;
|
|
53
|
+
particle.movement.y = movementY;
|
|
54
|
+
particle.x = movementX;
|
|
55
|
+
particle.y = movementY;
|
|
50
56
|
};
|
|
51
57
|
}
|
|
52
58
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AngularVelocityBehaviour.js","sourceRoot":"","sources":["../../../src/lib/behaviour/AngularVelocityBehaviour.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,aAAa,CAAA;AACnC,OAAO,IAAI,MAAM,eAAe,CAAA;AAChC,OAAO,cAAc,MAAM,kBAAkB,CAAA;AAG7C;;;;;GAKG;AACH,MAAM,CAAC,OAAO,OAAO,wBAAyB,SAAQ,SAAS;IAA/D;;
|
|
1
|
+
{"version":3,"file":"AngularVelocityBehaviour.js","sourceRoot":"","sources":["../../../src/lib/behaviour/AngularVelocityBehaviour.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,aAAa,CAAA;AACnC,OAAO,IAAI,MAAM,eAAe,CAAA;AAChC,OAAO,cAAc,MAAM,kBAAkB,CAAA;AAG7C;;;;;GAKG;AACH,MAAM,CAAC,OAAO,OAAO,wBAAyB,SAAQ,SAAS;IAA/D;;QACY,aAAQ,GAAW,GAAG,CAAA;QACxB,YAAO,GAAY,KAAK,CAAA;QACxB,YAAO,GAAW,CAAC,CAAA;QACnB,oBAAe,GAAW,CAAC,CAAA;QAC3B,cAAS,GAAW,CAAC,CAAA;QACrB,sBAAiB,GAAW,CAAC,CAAA;QAC7B,cAAS,GAAW,CAAC,CAAA;QACrB,sBAAiB,GAAW,CAAC,CAAA;QAErC;;;;;WAKG;QACH,SAAI,GAAG,CAAC,QAAkB,EAAE,EAAE;YAC5B,QAAQ,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAA;YACzG,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;YAC9E,QAAQ,CAAC,WAAW,GAAG,WAAW,CAAA;YAClC,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;YAE/E,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAA;YACd,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAA;YACd,QAAQ,CAAC,MAAM,GAAG,WAAW,CAAA;YAC7B,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAA;QACpB,CAAC,CAAA;QAED;;;;;;WAMG;QACH,UAAK,GAAG,CAAC,QAAkB,EAAE,SAAiB,EAAE,EAAE;YAChD,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,gBAAgB,EAAE,YAAY,EAAE,GAAG,QAAQ,CAAA;YAC3E,MAAM,aAAa,GAAG,QAAQ,CAAC,aAAa,GAAG,gBAAgB,GAAG,SAAS,CAAA;YAC3E,MAAM,MAAM,GAAG,WAAW,GAAG,CAAC,SAAS,GAAG,WAAW,CAAC,GAAG,YAAY,CAAA;YACrE,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,MAAM,CAAA;YAClD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,MAAM,CAAA;YAElD,QAAQ,CAAC,aAAa,GAAG,aAAa,CAAA;YACtC,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAA;YACxB,QAAQ,CAAC,QAAQ,CAAC,CAAC,GAAG,SAAS,CAAA;YAC/B,QAAQ,CAAC,QAAQ,CAAC,CAAC,GAAG,SAAS,CAAA;YAC/B,QAAQ,CAAC,CAAC,GAAG,SAAS,CAAA;YACtB,QAAQ,CAAC,CAAC,GAAG,SAAS,CAAA;QACxB,CAAC,CAAA;IA+BH,CAAC;IA7BC;;;;;OAKG;IACH,OAAO;QACL,OAAO,cAAc,CAAC,iBAAiB,CAAA;IACzC,CAAC;IAED;;;;;OAKG;IACH,QAAQ;QACN,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;YACzC,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;YACzC,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE;SACrB,CAAA;IACH,CAAC;CACF"}
|
|
@@ -9,10 +9,6 @@ export default class ColorBehaviour extends Behaviour {
|
|
|
9
9
|
startVariance: Color;
|
|
10
10
|
endVariance: Color;
|
|
11
11
|
sinus: boolean;
|
|
12
|
-
_rDiff: number;
|
|
13
|
-
_gDiff: number;
|
|
14
|
-
_bDiff: number;
|
|
15
|
-
_aDiff: number;
|
|
16
12
|
init: (particle: Particle) => void;
|
|
17
13
|
apply: (particle: Particle) => void;
|
|
18
14
|
getName(): string;
|
|
@@ -11,10 +11,6 @@ export default class ColorBehaviour extends Behaviour {
|
|
|
11
11
|
this.startVariance = new Color(0, 0, 0, 0);
|
|
12
12
|
this.endVariance = new Color(0, 0, 0, 0);
|
|
13
13
|
this.sinus = false;
|
|
14
|
-
this._rDiff = 0;
|
|
15
|
-
this._gDiff = 0;
|
|
16
|
-
this._bDiff = 0;
|
|
17
|
-
this._aDiff = 0;
|
|
18
14
|
this.init = (particle) => {
|
|
19
15
|
particle.colorStart.copyFrom(this.start);
|
|
20
16
|
particle.colorStart.r += this.varianceFrom(this.startVariance.r);
|
|
@@ -27,21 +23,18 @@ export default class ColorBehaviour extends Behaviour {
|
|
|
27
23
|
particle.colorEnd.b += this.varianceFrom(this.endVariance.b);
|
|
28
24
|
particle.colorEnd.alpha += this.varianceFrom(this.endVariance.alpha);
|
|
29
25
|
particle.color.copyFrom(particle.colorStart);
|
|
30
|
-
this._rDiff = particle.colorEnd.r - particle.colorStart.r;
|
|
31
|
-
this._gDiff = particle.colorEnd.g - particle.colorStart.g;
|
|
32
|
-
this._bDiff = particle.colorEnd.b - particle.colorStart.b;
|
|
33
|
-
this._aDiff = particle.colorEnd.alpha - particle.colorStart.alpha;
|
|
34
26
|
};
|
|
35
27
|
this.apply = (particle) => {
|
|
36
|
-
particle
|
|
37
|
-
particle.color.
|
|
38
|
-
particle.color.
|
|
39
|
-
particle.color.
|
|
28
|
+
const { colorStart, lifeProgress, colorEnd } = particle;
|
|
29
|
+
particle.color.copyFrom(colorStart);
|
|
30
|
+
particle.color.r += (colorEnd.r - colorStart.r) * lifeProgress;
|
|
31
|
+
particle.color.g += (colorEnd.g - colorStart.g) * lifeProgress;
|
|
32
|
+
particle.color.b += (colorEnd.b - colorStart.b) * lifeProgress;
|
|
40
33
|
if (!this.sinus) {
|
|
41
|
-
particle.color.alpha +=
|
|
34
|
+
particle.color.alpha += (colorEnd.alpha - colorStart.alpha) * lifeProgress;
|
|
42
35
|
}
|
|
43
36
|
else {
|
|
44
|
-
particle.color.alpha = Math.sin(
|
|
37
|
+
particle.color.alpha = Math.sin(lifeProgress * 3.1);
|
|
45
38
|
}
|
|
46
39
|
};
|
|
47
40
|
}
|
|
@@ -59,22 +52,22 @@ export default class ColorBehaviour extends Behaviour {
|
|
|
59
52
|
_alpha: this.start.alpha,
|
|
60
53
|
},
|
|
61
54
|
end: {
|
|
62
|
-
_r: this.
|
|
63
|
-
_g: this.
|
|
64
|
-
_b: this.
|
|
65
|
-
_alpha: this.
|
|
55
|
+
_r: this.end.r,
|
|
56
|
+
_g: this.end.g,
|
|
57
|
+
_b: this.end.b,
|
|
58
|
+
_alpha: this.end.alpha,
|
|
66
59
|
},
|
|
67
60
|
startVariance: {
|
|
68
|
-
_r: this.
|
|
69
|
-
_g: this.
|
|
70
|
-
_b: this.
|
|
71
|
-
_alpha: this.
|
|
61
|
+
_r: this.startVariance.r,
|
|
62
|
+
_g: this.startVariance.g,
|
|
63
|
+
_b: this.startVariance.b,
|
|
64
|
+
_alpha: this.startVariance.alpha,
|
|
72
65
|
},
|
|
73
66
|
endVariance: {
|
|
74
|
-
_r: this.
|
|
75
|
-
_g: this.
|
|
76
|
-
_b: this.
|
|
77
|
-
_alpha: this.
|
|
67
|
+
_r: this.endVariance.r,
|
|
68
|
+
_g: this.endVariance.g,
|
|
69
|
+
_b: this.endVariance.b,
|
|
70
|
+
_alpha: this.endVariance.alpha,
|
|
78
71
|
},
|
|
79
72
|
sinus: this.sinus,
|
|
80
73
|
name: this.getName(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ColorBehaviour.js","sourceRoot":"","sources":["../../../src/lib/behaviour/ColorBehaviour.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAC/B,OAAO,SAAS,MAAM,aAAa,CAAA;AACnC,OAAO,cAAc,MAAM,kBAAkB,CAAA;AAG7C,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,SAAS;IAArD;;QACE,YAAO,GAAG,KAAK,CAAA;QACf,aAAQ,GAAG,CAAC,CAAA;QACZ,UAAK,GAAG,IAAI,KAAK,EAAE,CAAA;QACnB,QAAG,GAAG,IAAI,KAAK,EAAE,CAAA;QACjB,kBAAa,GAAG,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;QACrC,gBAAW,GAAG,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;QACnC,UAAK,GAAG,KAAK,CAAA;
|
|
1
|
+
{"version":3,"file":"ColorBehaviour.js","sourceRoot":"","sources":["../../../src/lib/behaviour/ColorBehaviour.ts"],"names":[],"mappings":"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"}
|
|
@@ -32,8 +32,9 @@ export default class EmitDirectionBehaviour extends Behaviour {
|
|
|
32
32
|
* @memberof EmitDirectionBehaviour
|
|
33
33
|
*/
|
|
34
34
|
this.apply = (particle) => {
|
|
35
|
-
|
|
36
|
-
|
|
35
|
+
const { x, y, directionSin, directionCos } = particle;
|
|
36
|
+
_tmp = directionCos * x - directionSin * y;
|
|
37
|
+
particle.y = directionSin * x + directionCos * y;
|
|
37
38
|
particle.x = _tmp;
|
|
38
39
|
};
|
|
39
40
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EmitDirectionBehaviour.js","sourceRoot":"","sources":["../../../src/lib/behaviour/EmitDirectionBehaviour.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,aAAa,CAAA;AACnC,OAAO,cAAc,MAAM,kBAAkB,CAAA;AAG7C,IAAI,IAAI,GAAG,CAAC,CAAA;AAEZ;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,OAAO,sBAAuB,SAAQ,SAAS;IAA7D;;QACE,YAAO,GAAG,IAAI,CAAA;QACd,aAAQ,GAAG,CAAC,CAAA;QACZ,UAAK,GAAG,CAAC,CAAA;QACT,aAAQ,GAAG,CAAC,CAAA;QAEZ;;;;WAIG;QACH,SAAI,GAAG,CAAC,QAAkB,EAAE,EAAE;YAC5B,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;YACpE,QAAQ,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;YAChD,QAAQ,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;QAClD,CAAC,CAAA;QAED;;;;;WAKG;QACH,UAAK,GAAG,CAAC,QAAkB,EAAE,EAAE;YAC7B,
|
|
1
|
+
{"version":3,"file":"EmitDirectionBehaviour.js","sourceRoot":"","sources":["../../../src/lib/behaviour/EmitDirectionBehaviour.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,aAAa,CAAA;AACnC,OAAO,cAAc,MAAM,kBAAkB,CAAA;AAG7C,IAAI,IAAI,GAAG,CAAC,CAAA;AAEZ;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,OAAO,sBAAuB,SAAQ,SAAS;IAA7D;;QACE,YAAO,GAAG,IAAI,CAAA;QACd,aAAQ,GAAG,CAAC,CAAA;QACZ,UAAK,GAAG,CAAC,CAAA;QACT,aAAQ,GAAG,CAAC,CAAA;QAEZ;;;;WAIG;QACH,SAAI,GAAG,CAAC,QAAkB,EAAE,EAAE;YAC5B,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;YACpE,QAAQ,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;YAChD,QAAQ,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;QAClD,CAAC,CAAA;QAED;;;;;WAKG;QACH,UAAK,GAAG,CAAC,QAAkB,EAAE,EAAE;YAC7B,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE,YAAY,EAAE,GAAG,QAAQ,CAAA;YAErD,IAAI,GAAG,YAAY,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,CAAA;YAC1C,QAAQ,CAAC,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,CAAA;YAChD,QAAQ,CAAC,CAAC,GAAG,IAAI,CAAA;QACnB,CAAC,CAAA;IAyBH,CAAC;IAvBC;;;;OAIG;IACH,OAAO;QACL,OAAO,cAAc,CAAC,cAAc,CAAA;IACtC,CAAC;IAED;;;;OAIG;IACH,QAAQ;QACN,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE;SACrB,CAAA;IACH,CAAC;CACF"}
|
|
@@ -41,8 +41,7 @@ export default class LifeBehaviour extends Behaviour {
|
|
|
41
41
|
this.init = (particle) => {
|
|
42
42
|
particle.lifeTime = 0;
|
|
43
43
|
particle.lifeProgress = 0;
|
|
44
|
-
particle.maxLifeTime = this.maxLifeTime + this.varianceFrom(this.timeVariance);
|
|
45
|
-
particle.maxLifeTime = Math.max(particle.maxLifeTime, 0.0);
|
|
44
|
+
particle.maxLifeTime = Math.max(this.maxLifeTime + this.varianceFrom(this.timeVariance), 0.0);
|
|
46
45
|
};
|
|
47
46
|
/**
|
|
48
47
|
* Updates the particle's life time and progress.
|
|
@@ -52,9 +51,11 @@ export default class LifeBehaviour extends Behaviour {
|
|
|
52
51
|
* @returns {void}
|
|
53
52
|
*/
|
|
54
53
|
this.apply = (particle, deltaTime) => {
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
54
|
+
const { maxLifeTime } = particle;
|
|
55
|
+
const lifeTime = particle.lifeTime + deltaTime;
|
|
56
|
+
particle.lifeTime = lifeTime;
|
|
57
|
+
if (maxLifeTime > 0) {
|
|
58
|
+
particle.lifeProgress = Math.min(1.0, lifeTime / maxLifeTime);
|
|
58
59
|
}
|
|
59
60
|
};
|
|
60
61
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LifeBehaviour.js","sourceRoot":"","sources":["../../../src/lib/behaviour/LifeBehaviour.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAGnD;;;;;GAKG;AACH,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,SAAS;IAApD;;QACE;;;;WAIG;QACH,YAAO,GAAG,IAAI,CAAA;QAEd;;;;WAIG;QACH,aAAQ,GAAG,KAAK,CAAA;QAEhB;;;;WAIG;QACH,gBAAW,GAAG,CAAC,CAAA;QAEf;;;;WAIG;QACH,iBAAY,GAAG,CAAC,CAAA;QAEhB;;;;;WAKG;QACH,SAAI,GAAG,CAAC,QAAkB,EAAE,EAAE;YAC5B,QAAQ,CAAC,QAAQ,GAAG,CAAC,CAAA;YACrB,QAAQ,CAAC,YAAY,GAAG,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"LifeBehaviour.js","sourceRoot":"","sources":["../../../src/lib/behaviour/LifeBehaviour.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAGnD;;;;;GAKG;AACH,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,SAAS;IAApD;;QACE;;;;WAIG;QACH,YAAO,GAAG,IAAI,CAAA;QAEd;;;;WAIG;QACH,aAAQ,GAAG,KAAK,CAAA;QAEhB;;;;WAIG;QACH,gBAAW,GAAG,CAAC,CAAA;QAEf;;;;WAIG;QACH,iBAAY,GAAG,CAAC,CAAA;QAEhB;;;;;WAKG;QACH,SAAI,GAAG,CAAC,QAAkB,EAAE,EAAE;YAC5B,QAAQ,CAAC,QAAQ,GAAG,CAAC,CAAA;YACrB,QAAQ,CAAC,YAAY,GAAG,CAAC,CAAA;YACzB,QAAQ,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,GAAG,CAAC,CAAA;QAC/F,CAAC,CAAA;QAED;;;;;;WAMG;QACH,UAAK,GAAG,CAAC,QAAkB,EAAE,SAAiB,EAAE,EAAE;YAChD,MAAM,EAAE,WAAW,EAAE,GAAG,QAAQ,CAAA;YAChC,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,GAAG,SAAS,CAAA;YAE9C,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAA;YAE5B,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;gBACpB,QAAQ,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,GAAG,WAAW,CAAC,CAAA;YAC/D,CAAC;QACH,CAAC,CAAA;IAyBH,CAAC;IAvBC;;;;OAIG;IACH,OAAO;QACL,OAAO,cAAc,CAAC,cAAc,CAAA;IACtC,CAAC;IAED;;;;OAIG;IACH,QAAQ;QACN,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE;SACrB,CAAA;IACH,CAAC;CACF"}
|
|
@@ -2,11 +2,15 @@ import { Point } from '../util';
|
|
|
2
2
|
import { Behaviour } from './index';
|
|
3
3
|
import Particle from '../Particle';
|
|
4
4
|
import Model from '../Model';
|
|
5
|
+
import MinMax from '../util/MinMax';
|
|
6
|
+
import ThereBack from '../util/ThereBack';
|
|
5
7
|
export default class PositionBehaviour extends Behaviour {
|
|
6
8
|
enabled: boolean;
|
|
7
9
|
priority: number;
|
|
8
10
|
spawnType: string;
|
|
9
11
|
radius: number;
|
|
12
|
+
radiusX: number;
|
|
13
|
+
radiusY: number;
|
|
10
14
|
warp: boolean;
|
|
11
15
|
warpSpeed: number;
|
|
12
16
|
warpBaseSpeed: number;
|
|
@@ -27,6 +31,16 @@ export default class PositionBehaviour extends Behaviour {
|
|
|
27
31
|
warpStretch: number;
|
|
28
32
|
warpDistanceScaleConverter: number;
|
|
29
33
|
warpDistanceToCenter: boolean;
|
|
34
|
+
fromAtoB: boolean;
|
|
35
|
+
fromAtoBTwoWays: boolean;
|
|
36
|
+
pointA: Point;
|
|
37
|
+
pointB: Point;
|
|
38
|
+
thereDuration: MinMax;
|
|
39
|
+
thereAmplitude: MinMax;
|
|
40
|
+
backDuration: MinMax;
|
|
41
|
+
backAmplitude: MinMax;
|
|
42
|
+
there: ThereBack;
|
|
43
|
+
back: ThereBack;
|
|
30
44
|
/**
|
|
31
45
|
* Function that initializes a particle
|
|
32
46
|
* @param {Particle} particle - The particle to be initialized
|
|
@@ -59,6 +73,20 @@ export default class PositionBehaviour extends Behaviour {
|
|
|
59
73
|
* @return {BehaviourNames} The name of the behaviour
|
|
60
74
|
*/
|
|
61
75
|
getName(): string;
|
|
76
|
+
_lerp(start: number, end: number, t: number): number;
|
|
77
|
+
_easeBackInOut(t: number, c1?: number, c2?: number): number;
|
|
78
|
+
_easeBackIn(t: number, c1?: number): number;
|
|
79
|
+
_easeBackOut(t: number, c1?: number): number;
|
|
80
|
+
_easePower1In(t: number): number;
|
|
81
|
+
_easePower1Out(t: number): number;
|
|
82
|
+
_easePower1InOut(t: number): number;
|
|
83
|
+
_easeBounceIn(t: number): number;
|
|
84
|
+
_easeBounceOut(t: number): number;
|
|
85
|
+
_easeBounceInOut(t: number): number;
|
|
86
|
+
_easeElasticIn(t: number): number;
|
|
87
|
+
_easeElasticOut(t: number): number;
|
|
88
|
+
_easeElasticInOut(t: number): number;
|
|
89
|
+
_easeSteps(t: number, numSteps?: number): number;
|
|
62
90
|
/**
|
|
63
91
|
* @description Retrieves the properties of the object.
|
|
64
92
|
* @returns {Object} The properties of the object.
|
|
@@ -68,6 +96,44 @@ export default class PositionBehaviour extends Behaviour {
|
|
|
68
96
|
priority: number;
|
|
69
97
|
spawnType: string;
|
|
70
98
|
radius: number;
|
|
99
|
+
radiusX: number;
|
|
100
|
+
radiusY: number;
|
|
101
|
+
fromAtoB: boolean;
|
|
102
|
+
fromAtoBTwoWays: boolean;
|
|
103
|
+
there: {
|
|
104
|
+
x: string;
|
|
105
|
+
y: string;
|
|
106
|
+
ease: string;
|
|
107
|
+
};
|
|
108
|
+
back: {
|
|
109
|
+
x: string;
|
|
110
|
+
y: string;
|
|
111
|
+
ease: string;
|
|
112
|
+
};
|
|
113
|
+
pointA: {
|
|
114
|
+
x: number;
|
|
115
|
+
y: number;
|
|
116
|
+
};
|
|
117
|
+
pointB: {
|
|
118
|
+
x: number;
|
|
119
|
+
y: number;
|
|
120
|
+
};
|
|
121
|
+
thereDuration: {
|
|
122
|
+
x: number;
|
|
123
|
+
y: number;
|
|
124
|
+
};
|
|
125
|
+
thereAmplitude: {
|
|
126
|
+
x: number;
|
|
127
|
+
y: number;
|
|
128
|
+
};
|
|
129
|
+
backDuration: {
|
|
130
|
+
x: number;
|
|
131
|
+
y: number;
|
|
132
|
+
};
|
|
133
|
+
backAmplitude: {
|
|
134
|
+
x: number;
|
|
135
|
+
y: number;
|
|
136
|
+
};
|
|
71
137
|
warp: boolean;
|
|
72
138
|
sinX: boolean;
|
|
73
139
|
sinY: boolean;
|