custom-pixi-particles 5.1.0 → 5.1.1
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 +1 -1
- package/dist/lib/Particle.js +1 -2
- package/dist/lib/Particle.js.map +1 -1
- package/dist/lib/ParticlePool.js +1 -2
- package/dist/lib/ParticlePool.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 +7 -14
- 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/EmitterBehaviours.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.js +27 -23
- 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 +24 -13
- package/dist/lib/behaviour/SizeBehaviour.js.map +1 -1
- package/dist/lib/behaviour/TurbulenceBehaviour.js.map +1 -1
- package/dist/lib/emission/RandomEmission.js.map +1 -1
- package/dist/lib/emission/StandardEmission.d.ts +2 -2
- package/dist/lib/emission/StandardEmission.js +2 -2
- package/dist/lib/emission/StandardEmission.js.map +1 -1
- package/dist/lib/emission/UniformEmission.js.map +1 -1
- package/dist/lib/emitter/Emitter.d.ts +1 -1
- package/dist/lib/emitter/Emitter.js +2 -3
- package/dist/lib/emitter/Emitter.js.map +1 -1
- package/dist/lib/parser/BehaviourParser.js.map +1 -1
- package/dist/lib/parser/CompatibilityHelper.js +1 -2
- package/dist/lib/parser/CompatibilityHelper.js.map +1 -1
- package/dist/lib/parser/EmitControllerParser.js.map +1 -1
- package/dist/lib/parser/EmitterParser.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/List.js.map +1 -1
- package/dist/lib/util/Random.js +1 -2
- package/dist/lib/util/Random.js.map +1 -1
- package/package.json +3 -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
package/dist/lib/Particle.js
CHANGED
|
@@ -2,7 +2,7 @@ import { Color, Point } from './util';
|
|
|
2
2
|
/**
|
|
3
3
|
* Represents a particle object used in particle system simulations
|
|
4
4
|
*/
|
|
5
|
-
class Particle {
|
|
5
|
+
export default class Particle {
|
|
6
6
|
/**
|
|
7
7
|
* Constructs a particle object
|
|
8
8
|
*/
|
|
@@ -133,5 +133,4 @@ class Particle {
|
|
|
133
133
|
}
|
|
134
134
|
}
|
|
135
135
|
Particle._UID = { value: 0 };
|
|
136
|
-
export default Particle;
|
|
137
136
|
//# sourceMappingURL=Particle.js.map
|
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;AAErC;;GAEG;AACH,
|
|
1
|
+
{"version":3,"file":"Particle.js","sourceRoot":"","sources":["../../src/lib/Particle.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/ParticlePool.js
CHANGED
|
@@ -3,7 +3,7 @@ import Particle from './Particle';
|
|
|
3
3
|
* @class ParticlePool
|
|
4
4
|
* A class for managing a pool of particles.
|
|
5
5
|
*/
|
|
6
|
-
class ParticlePool {
|
|
6
|
+
export default class ParticlePool {
|
|
7
7
|
constructor() {
|
|
8
8
|
/**
|
|
9
9
|
* The first element in the pool.
|
|
@@ -52,5 +52,4 @@ class ParticlePool {
|
|
|
52
52
|
* A static global instance of ParticlePool.
|
|
53
53
|
*/
|
|
54
54
|
ParticlePool.global = new ParticlePool();
|
|
55
|
-
export default ParticlePool;
|
|
56
55
|
//# sourceMappingURL=ParticlePool.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ParticlePool.js","sourceRoot":"","sources":["../../src/lib/ParticlePool.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,YAAY,CAAA;AAEjC;;;GAGG;AACH,
|
|
1
|
+
{"version":3,"file":"ParticlePool.js","sourceRoot":"","sources":["../../src/lib/ParticlePool.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,YAAY,CAAA;AAEjC;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,YAAY;IAAjC;QAME;;WAEG;QACH,UAAK,GAAoB,IAAI,CAAA;IA0C/B,CAAC;IAxCC;;;;OAIG;IACH,GAAG;QACD,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC,MAAM,EAAE,CAAA;QAErC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAA;QAC1B,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,IAAI,CAAA;QACzB,OAAO,CAAC,IAAI,GAAG,IAAI,CAAA;QACnB,OAAO,OAAO,CAAA;IAChB,CAAC;IAED;;;;OAIG;IACH,MAAM;QACJ,OAAO,IAAI,QAAQ,EAAE,CAAA;IACvB,CAAC;IAED;;;;OAIG;IACH,IAAI,CAAC,QAAkB;QACrB,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAA;QAC1B,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAA;IACvB,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;QACjB,YAAY,CAAC,MAAM,GAAG,IAAI,YAAY,EAAE,CAAA;IAC1C,CAAC;;AAjDD;;GAEG;AACI,mBAAM,GAAG,IAAI,YAAY,EAAE,CAAA"}
|
|
@@ -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
|
}
|
|
@@ -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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EmitterBehaviours.js","sourceRoot":"","sources":["../../../src/lib/behaviour/EmitterBehaviours.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAM/B;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,iBAAiB;IAAtC;QACE,eAAU,GAAQ,EAAE,CAAA;QAEpB;;;;WAIG;QACH,WAAM,GAAG,GAAG,EAAE;YACZ,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,SAAc,EAAE,EAAE;gBAC/C,OAAO,SAAS,CAAC,OAAO,CAAA;YAC1B,CAAC,CAAC,CAAA;QACJ,CAAC,CAAA;QAED;;WAEG;QACH,UAAK,GAAG,GAAG,EAAE;YACX,IAAI,CAAC,UAAU,GAAG,EAAE,CAAA;QACtB,CAAC,CAAA;QAED;;;;;;WAMG;QACH,QAAG,GAAG,CAAC,SAAc,EAAE,EAAE;YACvB,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,KAAK,IAAI,EAAE
|
|
1
|
+
{"version":3,"file":"EmitterBehaviours.js","sourceRoot":"","sources":["../../../src/lib/behaviour/EmitterBehaviours.ts"],"names":[],"mappings":"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"}
|
|
@@ -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;gBACnB,QAAQ,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,GAAG,WAAW,CAAC,CAAA;aAC9D;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"}
|
|
@@ -81,6 +81,7 @@ export default class PositionBehaviour extends Behaviour {
|
|
|
81
81
|
this.restartWarp = (particle, initial, model) => {
|
|
82
82
|
if (!this.warp)
|
|
83
83
|
return;
|
|
84
|
+
const { sizeStart } = particle;
|
|
84
85
|
if (initial) {
|
|
85
86
|
particle.z = Math.random() * this.warpDistanceScaleConverter;
|
|
86
87
|
}
|
|
@@ -89,8 +90,8 @@ export default class PositionBehaviour extends Behaviour {
|
|
|
89
90
|
}
|
|
90
91
|
const distance = Math.random() * this.positionVariance.x + 1;
|
|
91
92
|
const deg = Math.random() * (Math.PI * 2);
|
|
92
|
-
particle.warpSizeStart.x = (1 - distance / this.positionVariance.x) * 0.5 *
|
|
93
|
-
particle.warpSizeStart.y = (1 - distance / this.positionVariance.y) * 0.5 *
|
|
93
|
+
particle.warpSizeStart.x = (1 - distance / this.positionVariance.x) * 0.5 * sizeStart.x;
|
|
94
|
+
particle.warpSizeStart.y = (1 - distance / this.positionVariance.y) * 0.5 * sizeStart.y;
|
|
94
95
|
if (this.warpDistanceToCenter) {
|
|
95
96
|
particle.movement.x = Math.cos(deg) * distance;
|
|
96
97
|
particle.movement.y = Math.sin(deg) * distance;
|
|
@@ -117,40 +118,43 @@ export default class PositionBehaviour extends Behaviour {
|
|
|
117
118
|
* @param {Model} model - The model containing information about the particle's movement
|
|
118
119
|
*/
|
|
119
120
|
this.apply = (particle, deltaTime, model) => {
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
particle.
|
|
121
|
+
const { acceleration, sinXVal, sinYVal, z, warpSizeStart, movement } = particle;
|
|
122
|
+
const { cameraZ } = model;
|
|
123
|
+
const PI = Math.PI;
|
|
124
|
+
particle.velocity.x += acceleration.x * deltaTime;
|
|
125
|
+
particle.velocity.y += acceleration.y * deltaTime;
|
|
126
|
+
const movementX = movement.x + particle.velocity.x * deltaTime;
|
|
127
|
+
const movementY = movement.y + particle.velocity.y * deltaTime;
|
|
128
|
+
particle.movement.x = movementX;
|
|
129
|
+
particle.movement.y = movementY;
|
|
124
130
|
if (this.sinX) {
|
|
125
|
-
particle.x =
|
|
126
|
-
particle.movement.x + Math.sin(Math.PI * (particle.movement.y / particle.sinXVal.x)) * particle.sinXVal.y;
|
|
131
|
+
particle.x = movementX + Math.sin(PI * (movementY / sinXVal.x)) * sinXVal.y;
|
|
127
132
|
}
|
|
128
133
|
else {
|
|
129
|
-
particle.x =
|
|
134
|
+
particle.x = movementX;
|
|
130
135
|
}
|
|
131
136
|
if (this.sinY) {
|
|
132
|
-
particle.y =
|
|
133
|
-
particle.movement.y + Math.sin(Math.PI * (particle.movement.x / particle.sinYVal.x)) * particle.sinYVal.y;
|
|
137
|
+
particle.y = movementY + Math.sin(PI * (movementX / sinYVal.x)) * sinYVal.y;
|
|
134
138
|
}
|
|
135
139
|
else {
|
|
136
|
-
particle.y =
|
|
140
|
+
particle.y = movementY;
|
|
137
141
|
}
|
|
138
142
|
if (model.warp) {
|
|
139
|
-
if (
|
|
143
|
+
if (z < cameraZ) {
|
|
140
144
|
this.restartWarp(particle, false, model);
|
|
141
145
|
}
|
|
142
|
-
const
|
|
143
|
-
const dxCenter =
|
|
144
|
-
const dyCenter =
|
|
146
|
+
const newZ = z - cameraZ;
|
|
147
|
+
const dxCenter = movementX;
|
|
148
|
+
const dyCenter = movementY;
|
|
145
149
|
const distanceCenter = Math.sqrt(dxCenter * dxCenter + dyCenter * dyCenter);
|
|
146
|
-
const distanceScale = Math.max(0, (this.warpDistanceScaleConverter -
|
|
147
|
-
const fovZ = this.warpFov /
|
|
148
|
-
particle.x =
|
|
149
|
-
particle.y =
|
|
150
|
-
particle.size.x = distanceScale *
|
|
150
|
+
const distanceScale = Math.max(0, (this.warpDistanceScaleConverter - newZ) / this.warpDistanceScaleConverter);
|
|
151
|
+
const fovZ = this.warpFov / newZ;
|
|
152
|
+
particle.x = movementX * fovZ;
|
|
153
|
+
particle.y = movementY * fovZ;
|
|
154
|
+
particle.size.x = distanceScale * warpSizeStart.x;
|
|
151
155
|
particle.size.y =
|
|
152
|
-
distanceScale *
|
|
153
|
-
particle.rotation = Math.atan2(dyCenter, dxCenter) +
|
|
156
|
+
distanceScale * warpSizeStart.y + distanceScale * this.warpSpeed * this.warpStretch * distanceCenter;
|
|
157
|
+
particle.rotation = Math.atan2(dyCenter, dxCenter) + PI / 2;
|
|
154
158
|
}
|
|
155
159
|
};
|
|
156
160
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PositionBehaviour.js","sourceRoot":"","sources":["../../../src/lib/behaviour/PositionBehaviour.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAC/B,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAInD,MAAM,CAAC,OAAO,OAAO,iBAAkB,SAAQ,SAAS;IAAxD;;QACE,YAAO,GAAG,KAAK,CAAA;QACf,aAAQ,GAAG,GAAG,CAAA;QACd,cAAS,GAAW,WAAW,CAAA;QAC/B,WAAM,GAAW,CAAC,CAAA;QAClB,SAAI,GAAY,KAAK,CAAA;QACrB,cAAS,GAAW,CAAC,CAAA;QACrB,kBAAa,GAAW,CAAC,CAAA;QACzB,SAAI,GAAY,KAAK,CAAA;QACrB,SAAI,GAAY,KAAK,CAAA;QACrB,YAAO,GAAG,IAAI,KAAK,EAAE,CAAA;QACrB,YAAO,GAAG,IAAI,KAAK,EAAE,CAAA;QACrB,oBAAe,GAAG,IAAI,KAAK,EAAE,CAAA;QAC7B,oBAAe,GAAG,IAAI,KAAK,EAAE,CAAA;QAC7B,aAAQ,GAAG,IAAI,KAAK,EAAE,CAAA;QACtB,qBAAgB,GAAG,IAAI,KAAK,EAAE,CAAA;QAC9B,aAAQ,GAAG,IAAI,KAAK,EAAE,CAAA;QACtB,qBAAgB,GAAG,IAAI,KAAK,EAAE,CAAA;QAC9B,iBAAY,GAAG,IAAI,KAAK,EAAE,CAAA;QAC1B,yBAAoB,GAAG,IAAI,KAAK,EAAE,CAAA;QAClC,qBAAgB,GAAW,EAAE,CAAA;QAC7B,YAAO,GAAW,EAAE,CAAA;QACpB,gBAAW,GAAW,CAAC,CAAA;QACvB,+BAA0B,GAAW,IAAI,CAAA;QACzC,yBAAoB,GAAY,KAAK,CAAA;QAErC;;;;WAIG;QACH,SAAI,GAAG,CAAC,QAAkB,EAAE,KAAY,EAAE,EAAE;YAC1C,IAAI,IAAI,CAAC,SAAS,KAAK,WAAW,EAAE
|
|
1
|
+
{"version":3,"file":"PositionBehaviour.js","sourceRoot":"","sources":["../../../src/lib/behaviour/PositionBehaviour.ts"],"names":[],"mappings":"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"}
|