From a793af35ac804976d29b8178dac6fd0292d8dda8 Mon Sep 17 00:00:00 2001 From: OleSTEEP Date: Fri, 22 Mar 2024 23:04:58 +0300 Subject: [PATCH] PIXI Controls: Add touch animation for DPAD --- .../img/system/controls/omori_dpad_down.png | Bin 0 -> 2798 bytes .../img/system/controls/omori_dpad_left.png | Bin 0 -> 3022 bytes .../img/system/controls/omori_dpad_right.png | Bin 0 -> 3036 bytes www.eng/img/system/controls/omori_dpad_up.png | Bin 0 -> 2861 bytes www.eng/js/plugins/VND_ONSControls.js | 42 +++++++++++++++--- .../img/system/controls/omori_dpad_down.png | Bin 0 -> 2798 bytes .../img/system/controls/omori_dpad_left.png | Bin 0 -> 3022 bytes .../img/system/controls/omori_dpad_right.png | Bin 0 -> 3036 bytes www.rus/img/system/controls/omori_dpad_up.png | Bin 0 -> 2861 bytes www.rus/js/plugins/VND_ONSControls.js | 42 +++++++++++++++--- 10 files changed, 74 insertions(+), 10 deletions(-) create mode 100644 www.eng/img/system/controls/omori_dpad_down.png create mode 100644 www.eng/img/system/controls/omori_dpad_left.png create mode 100644 www.eng/img/system/controls/omori_dpad_right.png create mode 100644 www.eng/img/system/controls/omori_dpad_up.png create mode 100644 www.rus/img/system/controls/omori_dpad_down.png create mode 100644 www.rus/img/system/controls/omori_dpad_left.png create mode 100644 www.rus/img/system/controls/omori_dpad_right.png create mode 100644 www.rus/img/system/controls/omori_dpad_up.png diff --git a/www.eng/img/system/controls/omori_dpad_down.png b/www.eng/img/system/controls/omori_dpad_down.png new file mode 100644 index 0000000000000000000000000000000000000000..5401be99c403f5b9cabb61708d110345286fa7b6 GIT binary patch literal 2798 zcmV41^@s6P>A$*00004XF*Lt006O$ zeEU(8000W5NklJ8~O25Qdvu4ixwnb~$mNkh%jy2kVkbN3lIi9mOS;H*lys zP@#iOT=p#-D4PvzNFa#kOatg{^jAeg4~qoY-~0n|z?lt<$=tgGg=~6vpf#fnn46F; z!_;e(fpQnpMSR`F4-f)U&NB~JH=AIIMAuIA;J_m#7a?5&f{Lx*U%flf60TAL@b3E( z#BOomq@`Qfi;D}`?RIc~e^0vo@ZrNzzdgw*vW72ucc2Bfls7jw-DN9j0RZmr@8NJb zJdGtX?-Ya7U3qZ7M?tnF?UJ!_Mtox0Y3bX2KRi4D0FY~a$!T`$qok%pW^=RI@Ava| zyM1Z_fOPBj*Tx=Wvu9OVjaN)gQi4ZL6_Y>B6LY`c&) znkA+yWlcF%O#U=U%#f6ra%y7AqIzPw61ukYcM zXuIF<;r-@2M zrj&+UIW;i{ASW?fNNLECQxkIlQi<78N<&IcP0Rs^C1wvP4KX=2F$W-&m_4O5gybAG zF~xrv&BiUVDSmG$4W=LVMg#ENZ}&6il9BpRyQepu=fI~V-MQT7+q*6ub$RppRWLDa zF`Z9IimT&LyYko^^ZM!%-n@PV*H@R#`(+;2l~U)JgOK|^W=lDJGU^;t=a@k$T9G>P zWA}TcIi@CNplyX7EBB*`sfkGvO-xNpl4xRTVvx7UnQhZO6hV+7qoXrR|_doO4H`ZDN)d(;!|Z5 zDN}M%rBqJ#LdJ^MTdLY}`rb;SPOh9RrA!rzf=n&tK%?P0Gup|b6Wr)@%;N*d->ix&+d7cX0Xo102n=7MAnlERum@4ISyH-f|)_Xj? zTe69{-{W0mzGjOpB)0^uStoLdX$DJO&e~E^m$PP_$R(yb*!_M_q6odDq%5afr&@A$ zPfT}^=0>3iJ*A{7r&}jXImskuNJ?tE^IlR?lhdtJO*y+IW=KkRu%)duDQn5O^!cqR zXZOTR4U&qSy=AN=C$^L|+A3uIXSs3y7>k++w zYxwrxH-E)TaldjdsudLT=H_PcDxKO=8kRgM)TK0F$oc)p&#HaIkn?aj zJl&ryX7Joa)TIPSpO7kd2^mE&60{V0~gzhtv2<aZJo2;IY`n$%e0xVm$~7nOr+UQ4#Iu=QYw51Ng11N1jUT~af?fhC^GQ5k~6I;PR!T?DvC|Wk!p#V zdSFF~xluJSb2>noH7_cBy!-pzQHud~A6t=fqIzQHc0?++j9>r#deqv#ABh|nnj~gP zha?b_G1S_BCz)Iank8mw$EZ-ct1OW*CTWen^`@luO%roT2RVTuWvQH8D6M((#58b{ zGbfoarOc6&Q(7*mb(h36aFR1d4JoB0=h7PIgkJHn@=|IYuf-NWcI>>CoIbGAlIruH zI#wS2TshWioYa#;C0%`T)=W%SPAa?b+V!#%(+xvIl{uyh74cHIV$_z>-knpC5+GhL zj9PY`W4eR}L`_;-klIq3#H1u;46IspdsQBSnuH-*$>}~8WiV@(6M9YNm@Z}xLtRvR z&N-r#wd#~J$E^OUTmnW=tQR`eg=_)Jt8$g|H%k)KMuq&%s>HmwxH!2JmGhb0&kU)I z$GARaedfph#o=%Wek7D?+mf@FXH(9tdB>oC9b#>clmO3HInCakb7?Cu5xbuwdOzPw z+R$zs05&IL0>H^-q1_ikTv`Msj611y|E14E?|S%>65uo~!4eZ7AtzNrbK#YePT2j# ze!SA+Q^hCc(?5SWF_DX$hE%d=Fjej%%HwmF(cqC1z#}GrM@|5Kg2v{?5vE4nOEJZM znVPF{ARr`w<)iO^uo`8kCAT4^wD55_x6IR!RWoop;DNNH7(=bwmoYQRTcj-KAZ96O#`^iOI3Z95*Hmh7yxwkvVQm7z`yQ$0Bpwm@pVhOpZn7 zxG`Zcl$acg%yDDFU??#;7MbJ5guzf^ax5~(jR}LH#LO-7ZntaHqx3O(jvEsOLx~wH zvb`iN=NL8?W|dKBDV!$e0ECL{TjJJ=)Ka)n6I0xBsXu%&U*w#=yTuZ>TzpI6GFGtv z)24Ur(8L5<7byryIa*>4C1$M16y)^vLFbqQkScOdIYW=Fi8%l{MeZSI>@hVl2Ozh| zE#*u-mL}!^loYvzoH>u7i8%nJMXo7l?tN=w4#1Kk*O0U1J~c51U}=#t zIRMy2j){l$N?sFl0BRK3Cm`nAOPZJiP^-wch}dt)kD8def}H`nf?YValw1;sTYs?_ zN=*0CB-D$|^%5``h!-<*+zaQl;oSEnj4;|yz8`W)&xnv>(-L3| zF#!T{GDftN0ON>h;4Y|mAq}I6Y2YU4FhUys2l?$~SSvSoc>n+a07*qoM6N<$f+qhq Ao&W#< literal 0 HcmV?d00001 diff --git a/www.eng/img/system/controls/omori_dpad_left.png b/www.eng/img/system/controls/omori_dpad_left.png new file mode 100644 index 0000000000000000000000000000000000000000..684e96eed98e52e9ccf3af8de2ff992fca0b3da2 GIT binary patch literal 3022 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 literal 0 HcmV?d00001 diff --git a/www.eng/img/system/controls/omori_dpad_right.png b/www.eng/img/system/controls/omori_dpad_right.png new file mode 100644 index 0000000000000000000000000000000000000000..fec2267cb7cddc8883de2902d66c783144140e50 GIT binary patch literal 3036 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 uaiQ#qrdaBTiy9f threshold) { button = "DPAD_DOWN"; + ONSControls.dpadAnimation("down"); } if (x < -threshold) { button = "DPAD_LEFT"; + ONSControls.dpadAnimation("left"); } else if (x > threshold) { button = "DPAD_RIGHT"; + ONSControls.dpadAnimation("right"); } if (button !== container.pressed_button && button !== undefined) { if (container.pressed_button !== null) { ONSControls.sendEvent({type: "pointerup"}, container.pressed_button); + ONSControls.dpadAnimation(null); } container.pressed = true; container.pressed_button = button; @@ -90,9 +95,11 @@ ONSControls.createDPad = function() { ONSControls.sendEvent({type: "pointerup"}, "DPAD_DOWN"); ONSControls.sendEvent({type: "pointerup"}, "DPAD_UP"); ONSControls.sendEvent({type: "pointerup"}, "DPAD_LEFT"); + ONSControls.dpadAnimation(null); } this._controlsCanvas.stage.addChild(container); this._dPadContainer = container; + this._preloadDPADStates(); } //============================================================================= // * LB/RB Buttons @@ -296,6 +303,22 @@ ONSControls.toSafeArea = function(position, element) { return position; } //============================================================================= +// * Preload all dpad states to avoid dpad blink +//============================================================================= +ONSControls._preloadDPADStates = function() { + var states = [ + new PIXI.Texture.fromImage(`img/system/controls/omori_dpad_up.png`), + new PIXI.Texture.fromImage(`img/system/controls/omori_dpad_left.png`), + new PIXI.Texture.fromImage(`img/system/controls/omori_dpad_right.png`), + new PIXI.Texture.fromImage(`img/system/controls/omori_dpad_down.png`), + new PIXI.Texture.fromImage(`img/system/controls/omori_dpad.png`), + ]; + + for (state of states) { + this._dPadContainer.setTexture(state); + } +} +//============================================================================= // * Set button pressing animation //============================================================================= ONSControls.pressAnimation = function(element, is_pressed) { @@ -303,6 +326,18 @@ ONSControls.pressAnimation = function(element, is_pressed) { element.alpha = is_pressed ? orig_opacity / 1.5 : orig_opacity; } //============================================================================= +// * Set dpad pressing animation +//============================================================================= +ONSControls.dpadAnimation = function(direction) { + if (direction !== null) { + var texture = new PIXI.Texture.fromImage(`img/system/controls/omori_dpad_${direction}.png`); + this._dPadContainer.setTexture(texture); + } else { + var base_texture = new PIXI.Texture.fromImage("img/system/controls/omori_dpad.png"); + this._dPadContainer.setTexture(base_texture); + } +} +//============================================================================= // * Setup events for button //============================================================================= ONSControls.setupButton = function(element, button) { @@ -334,12 +369,9 @@ ONSControls.setupInteractive = function () { // DPAD const container = this._dPadContainer; - container.on("pointerup", () => {container.upAll(); - ONSControls.pressAnimation(container, false);}) - container.on("pointerupoutside", () => {container.upAll(); - ONSControls.pressAnimation(container, false);}) + container.on("pointerup", () => {container.upAll()}); + container.on("pointerupoutside", () => {container.upAll()}); container.on("pointerdown", (event) => { - ONSControls.pressAnimation(container, true); var x = event.data.global.x - this._dPadContainer.x; var y = event.data.global.y - this._dPadContainer.y; container.down(x, y); diff --git a/www.rus/img/system/controls/omori_dpad_down.png b/www.rus/img/system/controls/omori_dpad_down.png new file mode 100644 index 0000000000000000000000000000000000000000..5401be99c403f5b9cabb61708d110345286fa7b6 GIT binary patch literal 2798 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 Ao&W#< literal 0 HcmV?d00001 diff --git a/www.rus/img/system/controls/omori_dpad_left.png b/www.rus/img/system/controls/omori_dpad_left.png new file mode 100644 index 0000000000000000000000000000000000000000..684e96eed98e52e9ccf3af8de2ff992fca0b3da2 GIT binary patch literal 3022 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 literal 0 HcmV?d00001 diff --git a/www.rus/img/system/controls/omori_dpad_right.png b/www.rus/img/system/controls/omori_dpad_right.png new file mode 100644 index 0000000000000000000000000000000000000000..fec2267cb7cddc8883de2902d66c783144140e50 GIT binary patch literal 3036 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 uaiQ#qrdaBTiy9f threshold) { button = "DPAD_DOWN"; + ONSControls.dpadAnimation("down"); } if (x < -threshold) { button = "DPAD_LEFT"; + ONSControls.dpadAnimation("left"); } else if (x > threshold) { button = "DPAD_RIGHT"; + ONSControls.dpadAnimation("right"); } if (button !== container.pressed_button && button !== undefined) { if (container.pressed_button !== null) { ONSControls.sendEvent({type: "pointerup"}, container.pressed_button); + ONSControls.dpadAnimation(null); } container.pressed = true; container.pressed_button = button; @@ -90,9 +95,11 @@ ONSControls.createDPad = function() { ONSControls.sendEvent({type: "pointerup"}, "DPAD_DOWN"); ONSControls.sendEvent({type: "pointerup"}, "DPAD_UP"); ONSControls.sendEvent({type: "pointerup"}, "DPAD_LEFT"); + ONSControls.dpadAnimation(null); } this._controlsCanvas.stage.addChild(container); this._dPadContainer = container; + this._preloadDPADStates(); } //============================================================================= // * LB/RB Buttons @@ -296,6 +303,22 @@ ONSControls.toSafeArea = function(position, element) { return position; } //============================================================================= +// * Preload all dpad states to avoid dpad blink +//============================================================================= +ONSControls._preloadDPADStates = function() { + var states = [ + new PIXI.Texture.fromImage(`img/system/controls/omori_dpad_up.png`), + new PIXI.Texture.fromImage(`img/system/controls/omori_dpad_left.png`), + new PIXI.Texture.fromImage(`img/system/controls/omori_dpad_right.png`), + new PIXI.Texture.fromImage(`img/system/controls/omori_dpad_down.png`), + new PIXI.Texture.fromImage(`img/system/controls/omori_dpad.png`), + ]; + + for (state of states) { + this._dPadContainer.setTexture(state); + } +} +//============================================================================= // * Set button pressing animation //============================================================================= ONSControls.pressAnimation = function(element, is_pressed) { @@ -303,6 +326,18 @@ ONSControls.pressAnimation = function(element, is_pressed) { element.alpha = is_pressed ? orig_opacity / 1.5 : orig_opacity; } //============================================================================= +// * Set dpad pressing animation +//============================================================================= +ONSControls.dpadAnimation = function(direction) { + if (direction !== null) { + var texture = new PIXI.Texture.fromImage(`img/system/controls/omori_dpad_${direction}.png`); + this._dPadContainer.setTexture(texture); + } else { + var base_texture = new PIXI.Texture.fromImage("img/system/controls/omori_dpad.png"); + this._dPadContainer.setTexture(base_texture); + } +} +//============================================================================= // * Setup events for button //============================================================================= ONSControls.setupButton = function(element, button) { @@ -334,12 +369,9 @@ ONSControls.setupInteractive = function () { // DPAD const container = this._dPadContainer; - container.on("pointerup", () => {container.upAll(); - ONSControls.pressAnimation(container, false);}) - container.on("pointerupoutside", () => {container.upAll(); - ONSControls.pressAnimation(container, false);}) + container.on("pointerup", () => {container.upAll()}); + container.on("pointerupoutside", () => {container.upAll()}); container.on("pointerdown", (event) => { - ONSControls.pressAnimation(container, true); var x = event.data.global.x - this._dPadContainer.x; var y = event.data.global.y - this._dPadContainer.y; container.down(x, y);