From 19ba639f9eb1d5be2f960a42f5dd7ea0358c09db Mon Sep 17 00:00:00 2001 From: Dinir Nertan Date: Sun, 14 Jun 2020 07:28:26 +0900 Subject: [PATCH] make joystick A layout and merge it into the original joystick skin --- skin/Joystick/config.json | 351 ------------------ skin/joystick/_anchor-A.png | Bin 0 -> 7157 bytes .../_anchor.png => joystick/_anchor-V.png} | Bin skin/joystick/a.mpskin.json | 259 +++++++++++++ skin/joystick/active.png | Bin 0 -> 1456 bytes skin/joystick/frame.png | Bin 0 -> 2602 bytes skin/joystick/v.mpskin.json | 259 +++++++++++++ 7 files changed, 518 insertions(+), 351 deletions(-) delete mode 100644 skin/Joystick/config.json create mode 100644 skin/joystick/_anchor-A.png rename skin/{Joystick/_anchor.png => joystick/_anchor-V.png} (100%) create mode 100644 skin/joystick/a.mpskin.json create mode 100644 skin/joystick/active.png create mode 100644 skin/joystick/frame.png create mode 100644 skin/joystick/v.mpskin.json diff --git a/skin/Joystick/config.json b/skin/Joystick/config.json deleted file mode 100644 index 997e484..0000000 --- a/skin/Joystick/config.json +++ /dev/null @@ -1,351 +0,0 @@ -{ - "name": "Joystick Default", - "properties": [ - "joystick" - ], - "src": [ - "frame.png", "active.png" - ], - "layer": [ - { - "name": "button", - "x": 15, "y": 16, "width": 227, "height": 112 - } - ], - "sticks": { - "layer": 0, - "left": { - "clear": [ - { - "instruction": "clearRect", - "x": 0, "y": 24, "width": 88, "height": 88 - }, - { - "instruction": "drawImage", - "src": 0, "srcPos": [0, 42], "size": [88, 88], "canvasPos": [0, 24] - } - ], - "off": [ - { - "instruction": "drawImageInNinePos", - "src": 1, "length": 28, "lengthDiagonal": 20, - "srcPos": [0, 42], "size": [32, 32], "canvasPos": [28, 52] - } - ] - } - }, - "buttons": { - "layer": 0, - "dpad": { - "value": { - "clear": [ - { - "instruction": "clearRect", - "x": 0, "y": 24, "width": 88, "height": 88 - }, - { - "instruction": "drawImage", - "src": 0, "srcPos": [0, 42], "size": [88, 88], "canvasPos": [0, 24] - } - ], - "off": [ - { - "instruction": "drawImage", - "src": 1, "srcPos": [0, 42], "size": [32, 32], "canvasPos": [28, 52] - } - ], - "on": [ - { - "instruction": "drawImageInNinePos", - "src": 1, "length": 28, "lengthDiagonal": 20, - "srcPos": [0, 42], "size": [32, 32], "canvasPos": [28, 52] - } - ] - } - }, - "face": { - "down": { - "clear": [ - { - "instruction": "clearRect", - "x": 96, "y": 84, "width": 28, "height": 28 - } - ], - "off": [ - { - "instruction": "drawImage", - "src": 0, "srcPos": [0, 0], "size": [28, 28], "canvasPos": [96, 84] - } - ], - "on": [ - { - "instruction": "drawImage", - "src": 1, "srcPos": [0, 0], "size": [28, 28], "canvasPos": [96, 84] - } - ] - }, - "right": { - "clear": [ - { - "instruction": "clearRect", - "x": 127, "y": 72, "width": 28, "height": 28 - } - ], - "off": [ - { - "instruction": "drawImage", - "src": 0, "srcPos": [28, 0], "size": [28, 28], "canvasPos": [127, 72] - } - ], - "on": [ - { - "instruction": "drawImage", - "src": 1, "srcPos": [28, 0], "size": [28, 28], "canvasPos": [127, 72] - } - ] - }, - "left": { - "clear": [ - { - "instruction": "clearRect", - "x": 103, "y": 49, "width": 28, "height": 28 - } - ], - "off": [ - { - "instruction": "drawImage", - "src": 0, "srcPos": [112, 0], "size": [28, 28], "canvasPos": [103, 49] - } - ], - "on": [ - { - "instruction": "drawImage", - "src": 1, "srcPos": [112, 0], "size": [28, 28], "canvasPos": [103, 49] - } - ] - }, - "up": { - "clear": [ - { - "instruction": "clearRect", - "x": 133, "y": 37, "width": 28, "height": 28 - } - ], - "off": [ - { - "instruction": "drawImage", - "src": 0, "srcPos": [140, 0], "size": [28, 28], "canvasPos": [133, 37] - } - ], - "on": [ - { - "instruction": "drawImage", - "src": 1, "srcPos": [140, 0], "size": [28, 28], "canvasPos": [133, 37] - } - ] - }, - "select": { - "clear": [ - { - "instruction": "clearRect", - "x": 164, "y": 0, "width": 28, "height": 16 - } - ], - "off": [ - { - "instruction": "drawImage", - "src": 0, "srcPos": [104, 48], "size": [28, 16], "canvasPos": [164, 0] - } - ], - "on": [ - { - "instruction": "drawImage", - "src": 1, "srcPos": [104, 48], "size": [28, 16], "canvasPos": [164, 0] - } - ] - }, - "start": { - "clear": [ - { - "instruction": "clearRect", - "x": 196, "y": 0, "width": 28, "height": 16 - } - ], - "off": [ - { - "instruction": "drawImage", - "src": 0, "srcPos": [132, 48], "size": [28, 16], "canvasPos": [196, 0] - } - ], - "on": [ - { - "instruction": "drawImage", - "src": 1, "srcPos": [132, 48], "size": [28, 16], "canvasPos": [196, 0] - } - ] - }, - "l3": { - "clear": [ - { - "instruction": "clearRect", - "x": 124, "y": 0, "width": 16, "height": 16 - } - ], - "off": [ - { - "instruction": "drawImage", - "src": 0, "srcPos": [160, 48], "size": [16, 16], "canvasPos": [124, 0] - } - ], - "on": [ - { - "instruction": "drawImage", - "src": 1, "srcPos": [160, 48], "size": [16, 16], "canvasPos": [124, 0] - } - ] - }, - "r3": { - "clear": [ - { - "instruction": "clearRect", - "x": 144, "y": 0, "width": 16, "height": 16 - } - ], - "off": [ - { - "instruction": "drawImage", - "src": 0, "srcPos": [176, 48], "size": [16, 16], "canvasPos": [144, 0] - } - ], - "on": [ - { - "instruction": "drawImage", - "src": 1, "srcPos": [176, 48], "size": [16, 16], "canvasPos": [144, 0] - } - ] - }, - "home": { - "clear": [ - { - "instruction": "clearRect", - "x": 84, "y": 0, "width": 16, "height": 16 - } - ], - "off": [ - { - "instruction": "drawImage", - "src": 0, "srcPos": [192, 48], "size": [16, 16], "canvasPos": [84, 0] - } - ], - "on": [ - { - "instruction": "drawImage", - "src": 1, "srcPos": [192, 48], "size": [16, 16], "canvasPos": [84, 0] - } - ] - }, - "touchpad": { - "clear": [ - { - "instruction": "clearRect", - "x": 104, "y": 0, "width": 16, "height": 16 - } - ], - "off": [ - { - "instruction": "drawImage", - "src": 0, "srcPos": [208, 48], "size": [16, 16], "canvasPos": [104, 0] - } - ], - "on": [ - { - "instruction": "drawImage", - "src": 1, "srcPos": [208, 48], "size": [16, 16], "canvasPos": [104, 0] - } - ] - } - }, - "shoulder": { - "l1": { - "clear": [ - { - "instruction": "clearRect", - "x": 199, "y": 37, "width": 28, "height": 28 - } - ], - "off": [ - { - "instruction": "drawImage", - "src": 0, "srcPos": [196, 0], "size": [28, 28], "canvasPos": [199, 37] - } - ], - "on": [ - { - "instruction": "drawImage", - "src": 1, "srcPos": [196, 0], "size": [28, 28], "canvasPos": [199, 37] - } - ] - }, - "r1": { - "clear": [ - { - "instruction": "clearRect", - "x": 166, "y": 37, "width": 28, "height": 28 - } - ], - "off": [ - { - "instruction": "drawImage", - "src": 0, "srcPos": [168, 0], "size": [28, 28], "canvasPos": [166, 37] - } - ], - "on": [ - { - "instruction": "drawImage", - "src": 1, "srcPos": [168, 0], "size": [28, 28], "canvasPos": [166, 37] - } - ] - }, - "l2": { - "clear": [ - { - "instruction": "clearRect", - "x": 193, "y": 72, "width": 28, "height": 28 - } - ], - "off": [ - { - "instruction": "drawImage", - "src": 0, "srcPos": [84, 0], "size": [28, 28], "canvasPos": [193, 72] - } - ], - "on": [ - { - "instruction": "drawImage", - "src": 1, "srcPos": [84, 0], "size": [28, 28], "canvasPos": [193, 72] - } - ] - }, - "r2": { - "clear": [ - { - "instruction": "clearRect", - "x": 160, "y": 72, "width": 28, "height": 28 - } - ], - "off": [ - { - "instruction": "drawImage", - "src": 0, "srcPos": [56, 0], "size": [28, 28], "canvasPos": [160, 72] - } - ], - "on": [ - { - "instruction": "drawImage", - "src": 1, "srcPos": [56, 0], "size": [28, 28], "canvasPos": [160, 72] - } - ] - } - } - } -} diff --git a/skin/joystick/_anchor-A.png b/skin/joystick/_anchor-A.png new file mode 100644 index 0000000000000000000000000000000000000000..e9fca22d6ca6ddfad82b33e7d756471bed0bb6c1 GIT binary patch literal 7157 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%0AC@zCWLP}A%vNIec~NNED@Of{4*bvb zRQUXbMexRAbcC{=>-w)#_pA_`cPXHt5G8Yj3#fxToMs;YT^k$1>kR&TASw!`A{>h} z>^%!mtb0^fdKmHZQ<8;r|N>MhKJu literal 0 HcmV?d00001 diff --git a/skin/Joystick/_anchor.png b/skin/joystick/_anchor-V.png similarity index 100% rename from skin/Joystick/_anchor.png rename to skin/joystick/_anchor-V.png diff --git a/skin/joystick/a.mpskin.json b/skin/joystick/a.mpskin.json new file mode 100644 index 0000000..a3dbf82 --- /dev/null +++ b/skin/joystick/a.mpskin.json @@ -0,0 +1,259 @@ +{ + "name": "Joystick A Layout", + "properties": [ + "joystick" + ], + "src": [ + "frame.png", "active.png" + ], + "layer": [{ + "name": "button", + "x": 15, "y": 16, "width": 224, "height": 119 + }], + "sticks": { + "layer": 0, + "left": { + "clear": [ + { + "instruction": "clearRect", + "x": 0, "y": 24, "width": 88, "height": 88 + }, + { + "instruction": "drawImage", + "src": 0, "srcPos": [0, 42], "size": [88, 88], "canvasPos": [0, 24] + } + ], + "off": [{ + "instruction": "drawImageInNinePos", + "src": 1, "length": 28, "lengthDiagonal": 20, + "srcPos": [0, 42], "size": [32, 32], "canvasPos": [28, 52] + }] + } + }, + "buttons": { + "layer": 0, + "dpad": { + "value": { + "clear": [ + { + "instruction": "clearRect", + "x": 0, "y": 24, "width": 88, "height": 88 + }, + { + "instruction": "drawImage", + "src": 0, "srcPos": [0, 42], "size": [88, 88], "canvasPos": [0, 24] + } + ], + "off": [{ + "instruction": "drawImage", + "src": 1, "srcPos": [0, 42], "size": [32, 32], "canvasPos": [28, 52] + }], + "on": [{ + "instruction": "drawImageInNinePos", + "src": 1, "length": 28, "lengthDiagonal": 20, + "srcPos": [0, 42], "size": [32, 32], "canvasPos": [28, 52] + }] + } + }, + "face": { + "down": { + "clear": [{ + "instruction": "clearRect", + "x": 96, "y": 71, "width": 28, "height": 28 + }], + "off": [{ + "instruction": "drawImage", + "src": 0, "srcPos": [0, 0], "size": [28, 28], "canvasPos": [96, 71] + }], + "on": [{ + "instruction": "drawImage", + "src": 1, "srcPos": [0, 0], "size": [28, 28], "canvasPos": [96, 71] + }] + }, + "right": { + "clear": [{ + "instruction": "clearPolygon", + "path": [133, 59, 153, 59, 153, 87, 125, 87, 125, 67] + }], + "off": [{ + "instruction": "drawImage", + "src": 0, "srcPos": [28, 0], "size": [28, 28], "canvasPos": [125, 59] + }], + "on": [{ + "instruction": "drawImage", + "src": 1, "srcPos": [28, 0], "size": [28, 28], "canvasPos": [125, 59] + }] + }, + "left": { + "clear": [{ + "instruction": "clearPolygon", + "path": [102, 37, 130, 37, 130, 57, 122, 65, 102, 65] + }], + "off": [{ + "instruction": "drawImage", + "src": 0, "srcPos": [112, 0], "size": [28, 28], "canvasPos": [102, 37] + }], + "on": [{ + "instruction": "drawImage", + "src": 1, "srcPos": [112, 0], "size": [28, 28], "canvasPos": [102, 37] + }] + }, + "up": { + "clear": [{ + "instruction": "clearRect", + "x": 131, "y": 25, "width": 28, "height": 28 + }], + "off": [{ + "instruction": "drawImage", + "src": 0, "srcPos": [140, 0], "size": [28, 28], "canvasPos": [131, 25] + }], + "on": [{ + "instruction": "drawImage", + "src": 1, "srcPos": [140, 0], "size": [28, 28], "canvasPos": [131, 25] + }] + }, + "select": { + "clear": [{ + "instruction": "clearRect", + "x": 164, "y": 0, "width": 28, "height": 16 + }], + "off": [{ + "instruction": "drawImage", + "src": 0, "srcPos": [104, 48], "size": [28, 16], "canvasPos": [164, 0] + }], + "on": [{ + "instruction": "drawImage", + "src": 1, "srcPos": [104, 48], "size": [28, 16], "canvasPos": [164, 0] + }] + }, + "start": { + "clear": [{ + "instruction": "clearRect", + "x": 196, "y": 0, "width": 28, "height": 16 + }], + "off": [{ + "instruction": "drawImage", + "src": 0, "srcPos": [132, 48], "size": [28, 16], "canvasPos": [196, 0] + }], + "on": [{ + "instruction": "drawImage", + "src": 1, "srcPos": [132, 48], "size": [28, 16], "canvasPos": [196, 0] + }] + }, + "l3": { + "clear": [{ + "instruction": "clearRect", + "x": 124, "y": 0, "width": 16, "height": 16 + }], + "off": [{ + "instruction": "drawImage", + "src": 0, "srcPos": [160, 48], "size": [16, 16], "canvasPos": [124, 0] + }], + "on": [{ + "instruction": "drawImage", + "src": 1, "srcPos": [160, 48], "size": [16, 16], "canvasPos": [124, 0] + }] + }, + "r3": { + "clear": [{ + "instruction": "clearRect", + "x": 144, "y": 0, "width": 16, "height": 16 + }], + "off": [{ + "instruction": "drawImage", + "src": 0, "srcPos": [176, 48], "size": [16, 16], "canvasPos": [144, 0] + }], + "on": [{ + "instruction": "drawImage", + "src": 1, "srcPos": [176, 48], "size": [16, 16], "canvasPos": [144, 0] + }] + }, + "home": { + "clear": [{ + "instruction": "clearRect", + "x": 84, "y": 0, "width": 16, "height": 16 + }], + "off": [{ + "instruction": "drawImage", + "src": 0, "srcPos": [192, 48], "size": [16, 16], "canvasPos": [84, 0] + }], + "on": [{ + "instruction": "drawImage", + "src": 1, "srcPos": [192, 48], "size": [16, 16], "canvasPos": [84, 0] + }] + }, + "touchpad": { + "clear": [{ + "instruction": "clearRect", + "x": 104, "y": 0, "width": 16, "height": 16 + }], + "off": [{ + "instruction": "drawImage", + "src": 0, "srcPos": [208, 48], "size": [16, 16], "canvasPos": [104, 0] + }], + "on": [{ + "instruction": "drawImage", + "src": 1, "srcPos": [208, 48], "size": [16, 16], "canvasPos": [104, 0] + }] + } + }, + "shoulder": { + "l1": { + "clear": [{ + "instruction": "clearRect", + "x": 193, "y": 43, "width": 28, "height": 28 + }], + "off": [{ + "instruction": "drawImage", + "src": 0, "srcPos": [196, 0], "size": [28, 28], "canvasPos": [193, 43] + }], + "on": [{ + "instruction": "drawImage", + "src": 1, "srcPos": [196, 0], "size": [28, 28], "canvasPos": [193, 43] + }] + }, + "r1": { + "clear": [{ + "instruction": "clearRect", + "x": 163, "y": 30, "width": 28, "height": 28 + }], + "off": [{ + "instruction": "drawImage", + "src": 0, "srcPos": [168, 0], "size": [28, 28], "canvasPos": [163, 30] + }], + "on": [{ + "instruction": "drawImage", + "src": 1, "srcPos": [168, 0], "size": [28, 28], "canvasPos": [163, 30] + }] + }, + "l2": { + "clear": [{ + "instruction": "clearRect", + "x": 187, "y": 78, "width": 28, "height": 28 + }], + "off": [{ + "instruction": "drawImage", + "src": 0, "srcPos": [84, 0], "size": [28, 28], "canvasPos": [187, 78] + }], + "on": [{ + "instruction": "drawImage", + "src": 1, "srcPos": [84, 0], "size": [28, 28], "canvasPos": [187, 78] + }] + }, + "r2": { + "clear": [{ + "instruction": "clearRect", + "x": 157, "y": 64, "width": 28, "height": 28 + }], + "off": [{ + "instruction": "drawImage", + "src": 0, "srcPos": [56, 0], "size": [28, 28], "canvasPos": [157, 64] + }], + "on": [{ + "instruction": "drawImage", + "src": 1, "srcPos": [56, 0], "size": [28, 28], "canvasPos": [157, 64] + }] + } + } + } +} diff --git a/skin/joystick/active.png b/skin/joystick/active.png new file mode 100644 index 0000000000000000000000000000000000000000..62d52e773555b106422d79ca3baa24c39c88cb85 GIT binary patch literal 1456 zcmV;h1yA~kP)Px)YDq*vRCt{2o!fD%FcbiV$F1Za_u(cyX(Th$k#Q65!v(k)?uQ3oMb_g8^upTx zN$jAr2slUqAqFMncDv2Kzn{+4G?^*jSeD~S(ZufDf07MV@-{rzo~{Qmx0#ga!`0zb_)-Gs@ ztdEI-4_~jogHq3@bx)_$>*2wa*hZV>@;k;NU8kOzTw072|gy~#fPt=PrNevBl|X5o%$OezNUS% zn!SNigAX4*0BC|i&-g(NuV&Ny-nCpT(zvPoE%@}GseO7pGk(tcn)NE_lf>DJ@8AkF zs9`V*Zb>{nhA(aozZpyaoXh9>Tkh>^TbGji*NjtYf9CeN{9Ao*Z$~l%>!j!(hvMe& z>l?}ZoYQCfoO}C*VwR|HDW5HN$^Dt)_<0)(YF5T|rrCnz43^3-ZE;ii%yO<4D5X!b zKCXi`$M)69y?xEkdpmxPwjgG3UzV>yat2G~m$ta6e4%nBwy$e_eBIHM{?gm`(~chi zD8)FAKjS$5NPoxImT#J-d77rVluwT(ai{c2+_`)%_g0vc2><{(g)Yp#yD*>L#r||3 zT~Gi3=#%IhlQ|yyFvl^%e_UfpU4KtCW*5pJ+CibDbCLQPtR4v^m~T)t3D`d3C*s#4 zNy1Vi>i3E-nR?wOpMrA-ZB0BAUn2S*+3|hv`uu6=_4A#aXaV++U2*vSkT5P)fz3X(!NrzTx_Ys^?IEL zrRudtbVI{@!a)jd4mG=ibVH$c=z;=Ngaibr2nh&K5fTufA|xPGMLImpRkn8dwPhDb zz{W|jlVe<^eWhHv*qXp3AXI0~L9CalU49GPh~Ehe#`c%3U4GMGY!Yxk@HkSK-93&( z0=7%(hmQB=+k1H)M*^q_59ICy>9mCU^5$~-XKDOAwRy)^Ki~SKTJKtZu7d6m$%IUy zH@k-7*PPz5wM407gjz5}WDY;!(;=;V`Py(KgB zrSiYEfH@O{RRF|W+?VLS0p)JPX_I= zc6M^Q&d6`*@OA(z-}o$B+>E#&!_7ZuXm33R}7An(``YsE#GC*a86b$uv##G)=QoN{!?A zGmhg=PM_}3-2eapdC*%P$?tpf^$u4-0RRA?LFj^hHgrJ&D)JBHw=2`-o)%dE0000< KMNUMnLSTY98Rp0U literal 0 HcmV?d00001 diff --git a/skin/joystick/frame.png b/skin/joystick/frame.png new file mode 100644 index 0000000000000000000000000000000000000000..930361de40eb748c83de39cd59d7dface4b26c36 GIT binary patch literal 2602 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