Π― Π½Π΅ Π·Π½Π°Ρ, ΠΎΠ±ΡΡΠΆΠ΄Π°Π»Π°ΡΡ Π»ΠΈ ΡΠ΅ΠΌΠ° ΡΠΆΠ΅, Π½ΠΎ Π±ΡΠ»ΠΎ Π±Ρ Π·Π΄ΠΎΡΠΎΠ²ΠΎ ΡΠ²ΠΈΠ΄Π΅ΡΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π±ΠΎΠ»ΡΡΠ΅ Π½Π°ΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° Π΄Π»Ρ pixijs.
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ substrac
, add
, merge
divide
, multiply
.
ΠΡΠΈΠΌΠ΅Ρ ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡΠ΄Ρ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΡΠ»ΡΡΠ°ΠΉ.
Π²ΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ
var a = from.getGlobalPosition();
var b = target.getGlobalPosition();
var ab = {x:a.x-b.x,y:a.y-b.y};
ΡΠΈΡΠ°Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½Π° ΡΡΡΠΎΠΊΠ°.
var diff = from.getGlobalPosition().substrac( target.getGlobalPosition() );
ΠΎΠ± ΡΡΠΎΠΌ ΡΠΆΠ΅ Π΄ΡΠΌΠ°ΡΡ ΠΈΠ»ΠΈ Π² ΡΠΏΠΈΡΠΊΠ΅ Π΄Π΅Π» Π²Π°ΡΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ? ΠΠΎΠΆΠ΅Ρ Π½ΠΈΠ·ΠΊΠΈΠΉ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ?
ΠΡΠΎ Π²ΡΠΏΠ»ΡΠ²Π°Π»ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·:
Π ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π· ΠΌΡ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΠΏΡΠΈΠ·Π΅ΠΌΠ»ΡΠ»ΠΈΡΡ Π½Π° Β«ΠΌΡ Π½Π΅ Ρ ΠΎΡΠΈΠΌ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π½Π΅ Π½ΡΠΆΠ½Π° pixiΒ».
ΠΡΠ»ΠΈ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ Π²ΡΡΠΈΡΠ°Π½ΠΈΡ/ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ ΠΏΠΈΠΊΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΡΠΈΡΡ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ ΠΊΠ°ΠΊ ΡΡΠ½ΠΊΡΠΈΡ Π²Π½Π΅ ΠΊΠ»Π°ΡΡΠ° ( subtract(a, b)
Π²ΠΌΠ΅ΡΡΠΎ a.subtract(b)
). Π‘ΠΎΠ΅Π΄ΠΈΠ½ΠΈΡΠ΅ ΡΡΠΎ Ρ ΡΠ΅ΠΌ ΡΠ°ΠΊΡΠΎΠΌ, ΡΡΠΎ Π»ΡΠ΄ΠΈ Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ Π±ΡΠ΄ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ²ΠΎΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Ρ Π½Π΅ Π²ΠΈΠΆΡ Π²Π΅ΡΠΊΠΈΡ
ΠΏΡΠΈΡΠΈΠ½ ΠΏΠΎΠΌΠ΅ΡΠ°ΡΡ ΠΈΡ
Π² ΡΠ°ΠΌΡ ΠΏΠΈΠΊΡΠΈ.
Π§ΡΠΎ ΠΌΠ΅Π½Ρ Π±ΠΎΠ»ΡΡΠ΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠΎΠ²Π°Π»ΠΎ, ΡΠ°ΠΊ ΡΡΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π΄Π»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Π²Π½Π΅Π΄ΡΠΈΡΡ ΡΠ²ΠΎΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ Π² pixi, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ Π±ΡΠ΄Π΅Ρ ΡΠ²ΠΎΡ.
ΡΠΏΠ°ΡΠΈΠ±ΠΎ Π·Π° Π²Π°Ρ ΠΎΡΠ²Π΅Ρ,
ΠΌΠ½Π΅ Π½Π΅ Π½ΡΠ°Π²ΠΈΡΡΡ subtract(a, b)
, ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΠ· Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠ³ΠΎ, Ρ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΉ Π²ΡΠ·ΠΎΠ².
Π― ΡΠΏΡΠΎΡΠΈΠ», ΡΡΠΎΠΈΡ Π»ΠΈ ΠΌΠ½Π΅ ΠΏΠ΅ΡΠ΅Π³ΡΡΠΆΠ°ΡΡΡΡ ΡΠ²ΠΎΠΈΠΌΠΈ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ, ΡΡΠΎ Ρ ΠΈ ΡΠ΄Π΅Π»Π°Π».
ΠΌΠ½Π΅ ΠΏΡΠΎΡΡΠΎ Π½ΡΠΆΠ½Π° Π±Π°Π·ΠΎΠ²Π°Ρ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΠΊΠ° Π΄Π»Ρ pixi.Point
, Π½ΠΈΡΠ΅Π³ΠΎ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΠ³ΠΎ.
ΠΠ΅Π΄Π°Π²Π½ΠΎ ΠΌΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠ»ΠΈ ΠΏΠ°ΠΊΠ΅Ρ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ @pixi/unsafe-eval
, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΡΠ΅Π΄Ρ, Π±Π»ΠΎΠΊΠΈΡΡΡΡΠΈΠ΅ new Function
ΡΠ΅ΡΠ΅Π· CSP. Π₯ΠΎΡΡ ΡΡΠΎΡ ΠΏΠ°ΠΊΠ΅Ρ Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ Π² ΠΌΠΎΠ½ΠΎΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ, ΠΎΠ½ _Π½Π΅_ Π²ΠΊΠ»ΡΡΠ΅Π½ Π² ΠΏΠ°ΠΊΠ΅ΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ( pixi.js
ΠΈ pixi.js-legacy
) ΠΈ Π½Π΅ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΠΊΠ°ΠΊΠΈΡ
-Π»ΠΈΠ±ΠΎ Π΄ΡΡΠ³ΠΈΡ
ΠΏΠΎΠ΄ΠΏΠ°ΠΊΠ΅ΡΠΎΠ².
Π― ΠΏΠΎΠ»Π°Π³Π°Ρ, ΡΡΠΎ ΠΌΡ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π½ΠΎΠ²ΡΠΉ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΏΠ°ΠΊΠ΅Ρ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠΉ @pixi/math-extras
, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΏΠ°ΠΊΠ΅ΡΠΎΠΌ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, unsafe-eval), Π½ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΌΠΎΠ³ΡΡ Π²ΡΠ±ΡΠ°ΡΡ ΠΊΡΡΡ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ
Π²Π΅ΡΠ΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°ΠΌΠ΅ΡΠ΅Π½Π½ΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½Ρ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, ΡΡΠΎΠ±Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΡΠ°Π·Π΄ΡΠ²Π°Π½ΠΈΡ. Π― ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎ Π±ΡΠ» Π±Ρ ΠΎΡΠΊΡΡΡ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ. Π― Π½Π΅ Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ ΡΡΠΎ ΠΎΠ³ΡΠΎΠΌΠ½ΡΠ΅ Π½Π°ΠΊΠ»Π°Π΄Π½ΡΠ΅ ΡΠ°ΡΡ
ΠΎΠ΄Ρ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ· ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Π½ΡΡ
ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ
ΡΡΠ½ΠΊΡΠΈΠΉ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΡ ΠΈ Π²ΡΡΠ΄ Π»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡΡ.
ΠΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ Π΅ΡΡΡ ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ ΠΈΠΌΠ΅ΡΡ ΠΏΠ΅ΡΠ²ΠΎΠΊΠ»Π°ΡΡΠ½ΡΠΉ ΠΏΠ»Π°Π³ΠΈΠ½ Π΄Π»Ρ ΠΎΠ±ΡΡΠ½ΡΡ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΡΠΈΠ»ΠΈΡ, ΠΈ Π½ΠΈΠΊΡΠΎ Π½Π΅ Π²Π·ΡΠ»ΡΡ ΡΠΏΡΠ°Π²Π»ΡΡΡ/ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠ²ΠΎΠΉ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ.
ΠΡΡΠ»ΠΈ?
ΠΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ @pixi/math-extras Π·Π²ΡΡΠΈΡ ΠΎΡΠ΅Π½Ρ Ρ
ΠΎΡΠΎΡΠΎ Π΄Π»Ρ ΠΌΠ΅Π½Ρ!
Π― ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ, ΡΡΠΎ Pixi Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ Π΄ΡΠΌΠ°Π΅Ρ ΠΎΠ± ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ Π² ΡΡΠ΅Π΄Π΅ Π²Π΅Π±-Π±ΡΠ°ΡΠ·Π΅ΡΠ° ΠΈ ΠΈΠ·Π±Π΅Π³Π°Π½ΠΈΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ
Π·Π°ΡΡΠ°Ρ.
Π΄Π»Ρ ΠΌΠ΅Π½Ρ ΡΠΎΡ
ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π² ΠΏΠ°ΠΌΡΡΠΈ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-ΡΠΎ KO ΠΈΠ»ΠΈ Mo Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ ΠΌΠΎΠ΅Π³ΠΎ Π½Π°ΡΡΠΎΠ»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°.
ΠΠΎΠ½Π΅ΡΠ½ΠΎ, Π±ΡΠ»ΠΎ Π±Ρ Π·Π°ΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΠ½ΠΎ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΠΎΠ΄Π½Π°ΠΆΠ΄Ρ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΏΠ»Π°Π³ΠΈΠ½ PIXI-Math
, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΊΠ»Π°ΡΡΠ½ΡΡ
ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ
ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Π΄Π»Ρ Π²ΡΠ΅Ρ
Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡΡ
ΠΊΠ»Π°ΡΡΠΎΠ² PIXI.
ObservablePoint
, Matrix
, Point
...
Π― Π½Π΅ Π·Π½Π°Ρ Π²ΡΠ΅Ρ
ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π² ΠΏΠΈΠΊΡΠΈ, Π½ΠΎ Π² ΠΌΠΎΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Point
, local
ΠΈ global
Π΄Π»Ρ Π»Π΅Π³ΠΊΠΎΠΉ Π°Π½ΠΈΠΌΠ°ΡΠΈΠΈ.
ΠΠ° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΡΡΠΎ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Ρ Π½Π°Ρ Π΅ΡΡΡ Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π² Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π² ΡΡΠ°Π΄ΠΈΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ. ΠΡΠ»ΠΈ ΠΊΡΠΎ-ΡΠΎ Π·Π°Ρ ΠΎΡΠ΅Ρ Π²Π·ΡΡΡΡΡ Π·Π° ΡΡΡ Π·Π°Π΄Π°ΡΡ (ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ, Π²Ρ, @djmisterjon!), Ρ Π±ΡΠ» Π±Ρ ΡΠ°Π΄ ΠΏΠΎΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π²Π°ΠΌΠΈ, ΡΡΠΎΠ±Ρ ΠΏΠ°ΠΊΠ΅Ρ ΡΠ°Π±ΠΎΡΠ°Π» Ρ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΡΠ±ΠΎΡΠΊΠΈ/ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ.
ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, ΠΏΠΎΡΠ΅ΠΌΡ Π±Ρ ΠΈ Π½Π΅Ρ, Ρ Π²Π΅ΡΠ½ΡΡΡ ΠΊ Π²Π°ΠΌ, ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ, Π½Π° ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ Π½Π΅Π΄Π΅Π»Π΅, Ρ Π±ΡΠ΄Ρ ΡΡΠ°ΡΡΠ»ΠΈΠ² Π½Π°ΡΠ°ΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ ΠΈ ΠΈΠ΄Π΅Ρ.
ΠΡΠΎΠ±Π΅Π½Π½ΠΎ, Π΅ΡΠ»ΠΈ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π΄Π»Ρ ΠΌΠΎΠ΅Π³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° PIXI, Ρ ΡΠΎΠΆΠ΅ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠ΅ΡΠ΅Π³ΡΡΠΆΠ΅Π½ ΡΠ°Π±ΠΎΡΠΎΠΉ.
Π― Π½Π΅ ΡΠ°ΠΊ Π»Π΅Π³ΠΊΠΎ ΠΎΡΠ²Π°ΠΈΠ²Π°Ρ Π²ΡΠ΅ ΡΠ΅Ρ
Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ, ΠΊΠ°ΠΊ Π²Ρ, Π½ΠΎ Ρ ΠΌΠΎΠ³Ρ Π»Π΅Π³ΠΊΠΎ Π·Π°Π»ΠΎΠΆΠΈΡΡ ΡΡΠΎ-ΡΠΎ Ρ
ΠΎΡΠΎΡΠ΅Π΅. :)
ΠΡΠ»ΠΈ Π²Ρ ΠΈΡΠ΅ΡΠ΅ ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΠ°ΠΊΠ΅ΡΠ° Π΄Π»Ρ ΠΏΠΎΠ΄ΡΠ°ΠΆΠ°Π½ΠΈΡ, ΠΏΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΡ mixin-* ΠΈΠ»ΠΈ ΡΡΠΎ-ΡΠΎ Π²ΡΠΎΠ΄Π΅ canvas-particles. ΠΠ½ΠΈ ΡΠ°ΡΡΠΈΡΡΡΡ ΠΏΡΠΎΡΠΎΡΠΈΠΏ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ ΠΊΠ»Π°ΡΡΠΎΠ². ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΎΠ·Π½Π°ΠΊΠΎΠΌΡΡΠ΅ΡΡ Ρ ΡΠ΅ΠΌΠΈ ΡΡΠ°ΡΡΠΌΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π» @englercj . Π£ Π½ΠΈΡ Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΎΡΠ»ΠΈΡΠ½ΡΡ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π΄Π»Ρ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ°, ΡΠΎΡΠΊΠΈ ΠΈ Ρ. Π΄.
ΠΡΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π±ΡΠ»Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠΎΠΌΠ΅ΡΠ΅Π½Π° ΠΊΠ°ΠΊ ΡΡΡΠ°ΡΠ΅Π²ΡΠ°Ρ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π² ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ Π²ΡΠ΅ΠΌΡ Π² Π½Π΅ΠΉ Π½Π΅ Π±ΡΠ»ΠΎ Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ. ΠΠ½ Π±ΡΠ΄Π΅Ρ Π·Π°ΠΊΡΡΡ, Π΅ΡΠ»ΠΈ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΉ Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ Π½Π΅ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ. Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ Π·Π° Π²Π°Ρ Π²ΠΊΠ»Π°Π΄.
Π‘Π°ΠΌΡΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
ΠΠ΅Π΄Π°Π²Π½ΠΎ ΠΌΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠ»ΠΈ ΠΏΠ°ΠΊΠ΅Ρ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ
@pixi/unsafe-eval
, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΡΠ΅Π΄Ρ, Π±Π»ΠΎΠΊΠΈΡΡΡΡΠΈΠ΅new Function
ΡΠ΅ΡΠ΅Π· CSP. Π₯ΠΎΡΡ ΡΡΠΎΡ ΠΏΠ°ΠΊΠ΅Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΠΌΠΎΠ½ΠΎΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ, ΠΎΠ½ _Π½Π΅_ Π²ΠΊΠ»ΡΡΠ΅Π½ Π² ΠΏΠ°ΠΊΠ΅ΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ (pixi.js
ΠΈpixi.js-legacy
) ΠΈ Π½Π΅ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΠΊΠ°ΠΊΠΈΡ -Π»ΠΈΠ±ΠΎ Π΄ΡΡΠ³ΠΈΡ ΠΏΠΎΠ΄ΠΏΠ°ΠΊΠ΅ΡΠΎΠ².Π― ΠΏΠΎΠ»Π°Π³Π°Ρ, ΡΡΠΎ ΠΌΡ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π½ΠΎΠ²ΡΠΉ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΏΠ°ΠΊΠ΅Ρ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠΉ
@pixi/math-extras
, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΏΠ°ΠΊΠ΅ΡΠΎΠΌ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, unsafe-eval), Π½ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΌΠΎΠ³ΡΡ Π²ΡΠ±ΡΠ°ΡΡ ΠΊΡΡΡ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ Π²Π΅ΡΠ΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°ΠΌΠ΅ΡΠ΅Π½Π½ΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½Ρ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, ΡΡΠΎΠ±Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΡΠ°Π·Π΄ΡΠ²Π°Π½ΠΈΡ. Π― ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎ Π±ΡΠ» Π±Ρ ΠΎΡΠΊΡΡΡ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ. Π― Π½Π΅ Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ ΡΡΠΎ ΠΎΠ³ΡΠΎΠΌΠ½ΡΠ΅ Π½Π°ΠΊΠ»Π°Π΄Π½ΡΠ΅ ΡΠ°ΡΡ ΠΎΠ΄Ρ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ· ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Π½ΡΡ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΡ ΠΈ Π²ΡΡΠ΄ Π»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡΡ.ΠΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ Π΅ΡΡΡ ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ ΠΈΠΌΠ΅ΡΡ ΠΏΠ΅ΡΠ²ΠΎΠΊΠ»Π°ΡΡΠ½ΡΠΉ ΠΏΠ»Π°Π³ΠΈΠ½ Π΄Π»Ρ ΠΎΠ±ΡΡΠ½ΡΡ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΡΠΈΠ»ΠΈΡ, ΠΈ Π½ΠΈΠΊΡΠΎ Π½Π΅ Π²Π·ΡΠ»ΡΡ ΡΠΏΡΠ°Π²Π»ΡΡΡ/ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠ²ΠΎΠΉ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ.
ΠΡΡΠ»ΠΈ?