Comparing version 2.1.1 to 2.2.0
{ | ||
"name": "pixi.js", | ||
"version": "2.1.1", | ||
"version": "2.2.0", | ||
@@ -5,0 +5,0 @@ "main": "bin/pixi.dev.js", |
@@ -1,332 +0,1 @@ | ||
{"frames": { | ||
"dagger.png": | ||
{ | ||
"frame": {"x":2,"y":372,"w":26,"h":108}, | ||
"rotated": false, | ||
"trimmed": false, | ||
"spriteSourceSize": {"x":0,"y":0,"w":26,"h":108}, | ||
"sourceSize": {"w":26,"h":108} | ||
}, | ||
"goblin/eyes-closed.png": | ||
{ | ||
"frame": {"x":64,"y":354,"w":34,"h":12}, | ||
"rotated": false, | ||
"trimmed": false, | ||
"spriteSourceSize": {"x":0,"y":0,"w":34,"h":12}, | ||
"sourceSize": {"w":34,"h":12} | ||
}, | ||
"goblin/head.png": | ||
{ | ||
"frame": {"x":59,"y":83,"w":103,"h":64}, | ||
"rotated": false, | ||
"trimmed": true, | ||
"spriteSourceSize": {"x":0,"y":2,"w":103,"h":64}, | ||
"sourceSize": {"w":103,"h":66} | ||
}, | ||
"goblin/left-arm.png": | ||
{ | ||
"frame": {"x":30,"y":445,"w":37,"h":35}, | ||
"rotated": false, | ||
"trimmed": false, | ||
"spriteSourceSize": {"x":0,"y":0,"w":37,"h":35}, | ||
"sourceSize": {"w":37,"h":35} | ||
}, | ||
"goblin/left-foot.png": | ||
{ | ||
"frame": {"x":59,"y":182,"w":65,"h":31}, | ||
"rotated": false, | ||
"trimmed": false, | ||
"spriteSourceSize": {"x":0,"y":0,"w":65,"h":31}, | ||
"sourceSize": {"w":65,"h":31} | ||
}, | ||
"goblin/left-hand.png": | ||
{ | ||
"frame": {"x":107,"y":436,"w":36,"h":41}, | ||
"rotated": false, | ||
"trimmed": false, | ||
"spriteSourceSize": {"x":0,"y":0,"w":36,"h":41}, | ||
"sourceSize": {"w":36,"h":41} | ||
}, | ||
"goblin/left-lower-leg.png": | ||
{ | ||
"frame": {"x":26,"y":74,"w":31,"h":70}, | ||
"rotated": false, | ||
"trimmed": true, | ||
"spriteSourceSize": {"x":1,"y":0,"w":31,"h":70}, | ||
"sourceSize": {"w":33,"h":70} | ||
}, | ||
"goblin/left-shoulder.png": | ||
{ | ||
"frame": {"x":26,"y":146,"w":29,"h":44}, | ||
"rotated": false, | ||
"trimmed": false, | ||
"spriteSourceSize": {"x":0,"y":0,"w":29,"h":44}, | ||
"sourceSize": {"w":29,"h":44} | ||
}, | ||
"goblin/left-upper-leg.png": | ||
{ | ||
"frame": {"x":30,"y":370,"w":33,"h":73}, | ||
"rotated": false, | ||
"trimmed": false, | ||
"spriteSourceSize": {"x":0,"y":0,"w":33,"h":73}, | ||
"sourceSize": {"w":33,"h":73} | ||
}, | ||
"goblin/neck.png": | ||
{ | ||
"frame": {"x":146,"y":309,"w":36,"h":41}, | ||
"rotated": false, | ||
"trimmed": false, | ||
"spriteSourceSize": {"x":0,"y":0,"w":36,"h":41}, | ||
"sourceSize": {"w":36,"h":41} | ||
}, | ||
"goblin/pelvis.png": | ||
{ | ||
"frame": {"x":163,"y":233,"w":62,"h":43}, | ||
"rotated": false, | ||
"trimmed": false, | ||
"spriteSourceSize": {"x":0,"y":0,"w":62,"h":43}, | ||
"sourceSize": {"w":62,"h":43} | ||
}, | ||
"goblin/right-arm.png": | ||
{ | ||
"frame": {"x":30,"y":240,"w":23,"h":50}, | ||
"rotated": false, | ||
"trimmed": false, | ||
"spriteSourceSize": {"x":0,"y":0,"w":23,"h":50}, | ||
"sourceSize": {"w":23,"h":50} | ||
}, | ||
"goblin/right-foot.png": | ||
{ | ||
"frame": {"x":164,"y":198,"w":63,"h":33}, | ||
"rotated": false, | ||
"trimmed": false, | ||
"spriteSourceSize": {"x":0,"y":0,"w":63,"h":33}, | ||
"sourceSize": {"w":63,"h":33} | ||
}, | ||
"goblin/right-hand.png": | ||
{ | ||
"frame": {"x":154,"y":462,"w":36,"h":37}, | ||
"rotated": false, | ||
"trimmed": false, | ||
"spriteSourceSize": {"x":0,"y":0,"w":36,"h":37}, | ||
"sourceSize": {"w":36,"h":37} | ||
}, | ||
"goblin/right-lower-leg.png": | ||
{ | ||
"frame": {"x":26,"y":292,"w":36,"h":76}, | ||
"rotated": false, | ||
"trimmed": false, | ||
"spriteSourceSize": {"x":0,"y":0,"w":36,"h":76}, | ||
"sourceSize": {"w":36,"h":76} | ||
}, | ||
"goblin/right-shoulder.png": | ||
{ | ||
"frame": {"x":105,"y":309,"w":39,"h":43}, | ||
"rotated": false, | ||
"trimmed": true, | ||
"spriteSourceSize": {"x":0,"y":2,"w":39,"h":43}, | ||
"sourceSize": {"w":39,"h":45} | ||
}, | ||
"goblin/right-upper-leg.png": | ||
{ | ||
"frame": {"x":136,"y":354,"w":34,"h":63}, | ||
"rotated": false, | ||
"trimmed": false, | ||
"spriteSourceSize": {"x":0,"y":0,"w":34,"h":63}, | ||
"sourceSize": {"w":34,"h":63} | ||
}, | ||
"goblin/torso.png": | ||
{ | ||
"frame": {"x":164,"y":2,"w":68,"h":96}, | ||
"rotated": false, | ||
"trimmed": false, | ||
"spriteSourceSize": {"x":0,"y":0,"w":68,"h":96}, | ||
"sourceSize": {"w":68,"h":96} | ||
}, | ||
"goblin/undie-straps.png": | ||
{ | ||
"frame": {"x":59,"y":482,"w":55,"h":19}, | ||
"rotated": false, | ||
"trimmed": false, | ||
"spriteSourceSize": {"x":0,"y":0,"w":55,"h":19}, | ||
"sourceSize": {"w":55,"h":19} | ||
}, | ||
"goblin/undies.png": | ||
{ | ||
"frame": {"x":116,"y":479,"w":36,"h":29}, | ||
"rotated": false, | ||
"trimmed": false, | ||
"spriteSourceSize": {"x":0,"y":0,"w":36,"h":29}, | ||
"sourceSize": {"w":36,"h":29} | ||
}, | ||
"goblingirl/eyes-closed.png": | ||
{ | ||
"frame": {"x":100,"y":419,"w":37,"h":15}, | ||
"rotated": false, | ||
"trimmed": true, | ||
"spriteSourceSize": {"x":0,"y":6,"w":37,"h":15}, | ||
"sourceSize": {"w":37,"h":21} | ||
}, | ||
"goblingirl/head.png": | ||
{ | ||
"frame": {"x":59,"y":2,"w":103,"h":79}, | ||
"rotated": false, | ||
"trimmed": true, | ||
"spriteSourceSize": {"x":0,"y":0,"w":103,"h":79}, | ||
"sourceSize": {"w":103,"h":81} | ||
}, | ||
"goblingirl/left-arm.png": | ||
{ | ||
"frame": {"x":124,"y":227,"w":37,"h":35}, | ||
"rotated": false, | ||
"trimmed": false, | ||
"spriteSourceSize": {"x":0,"y":0,"w":37,"h":35}, | ||
"sourceSize": {"w":37,"h":35} | ||
}, | ||
"goblingirl/left-foot.png": | ||
{ | ||
"frame": {"x":59,"y":149,"w":65,"h":31}, | ||
"rotated": false, | ||
"trimmed": false, | ||
"spriteSourceSize": {"x":0,"y":0,"w":65,"h":31}, | ||
"sourceSize": {"w":65,"h":31} | ||
}, | ||
"goblingirl/left-hand.png": | ||
{ | ||
"frame": {"x":55,"y":250,"w":35,"h":40}, | ||
"rotated": false, | ||
"trimmed": false, | ||
"spriteSourceSize": {"x":0,"y":0,"w":35,"h":40}, | ||
"sourceSize": {"w":35,"h":40} | ||
}, | ||
"goblingirl/left-lower-leg.png": | ||
{ | ||
"frame": {"x":26,"y":2,"w":31,"h":70}, | ||
"rotated": false, | ||
"trimmed": true, | ||
"spriteSourceSize": {"x":1,"y":0,"w":31,"h":70}, | ||
"sourceSize": {"w":33,"h":70} | ||
}, | ||
"goblingirl/left-shoulder.png": | ||
{ | ||
"frame": {"x":26,"y":192,"w":28,"h":46}, | ||
"rotated": false, | ||
"trimmed": false, | ||
"spriteSourceSize": {"x":0,"y":0,"w":28,"h":46}, | ||
"sourceSize": {"w":28,"h":46} | ||
}, | ||
"goblingirl/left-upper-leg.png": | ||
{ | ||
"frame": {"x":65,"y":368,"w":33,"h":70}, | ||
"rotated": false, | ||
"trimmed": false, | ||
"spriteSourceSize": {"x":0,"y":0,"w":33,"h":70}, | ||
"sourceSize": {"w":33,"h":70} | ||
}, | ||
"goblingirl/neck.png": | ||
{ | ||
"frame": {"x":145,"y":419,"w":33,"h":41}, | ||
"rotated": false, | ||
"trimmed": true, | ||
"spriteSourceSize": {"x":0,"y":0,"w":33,"h":41}, | ||
"sourceSize": {"w":35,"h":41} | ||
}, | ||
"goblingirl/pelvis.png": | ||
{ | ||
"frame": {"x":92,"y":264,"w":60,"h":43}, | ||
"rotated": false, | ||
"trimmed": true, | ||
"spriteSourceSize": {"x":0,"y":0,"w":60,"h":43}, | ||
"sourceSize": {"w":62,"h":43} | ||
}, | ||
"goblingirl/right-arm.png": | ||
{ | ||
"frame": {"x":232,"y":100,"w":22,"h":50}, | ||
"rotated": false, | ||
"trimmed": true, | ||
"spriteSourceSize": {"x":3,"y":0,"w":22,"h":50}, | ||
"sourceSize": {"w":28,"h":50} | ||
}, | ||
"goblingirl/right-foot.png": | ||
{ | ||
"frame": {"x":59,"y":215,"w":63,"h":33}, | ||
"rotated": false, | ||
"trimmed": false, | ||
"spriteSourceSize": {"x":0,"y":0,"w":63,"h":33}, | ||
"sourceSize": {"w":63,"h":33} | ||
}, | ||
"goblingirl/right-hand.png": | ||
{ | ||
"frame": {"x":69,"y":440,"w":36,"h":37}, | ||
"rotated": false, | ||
"trimmed": false, | ||
"spriteSourceSize": {"x":0,"y":0,"w":36,"h":37}, | ||
"sourceSize": {"w":36,"h":37} | ||
}, | ||
"goblingirl/right-lower-leg.png": | ||
{ | ||
"frame": {"x":126,"y":149,"w":36,"h":76}, | ||
"rotated": false, | ||
"trimmed": false, | ||
"spriteSourceSize": {"x":0,"y":0,"w":36,"h":76}, | ||
"sourceSize": {"w":36,"h":76} | ||
}, | ||
"goblingirl/right-shoulder.png": | ||
{ | ||
"frame": {"x":64,"y":309,"w":39,"h":43}, | ||
"rotated": false, | ||
"trimmed": true, | ||
"spriteSourceSize": {"x":0,"y":2,"w":39,"h":43}, | ||
"sourceSize": {"w":39,"h":45} | ||
}, | ||
"goblingirl/right-upper-leg.png": | ||
{ | ||
"frame": {"x":100,"y":354,"w":34,"h":63}, | ||
"rotated": false, | ||
"trimmed": false, | ||
"spriteSourceSize": {"x":0,"y":0,"w":34,"h":63}, | ||
"sourceSize": {"w":34,"h":63} | ||
}, | ||
"goblingirl/torso.png": | ||
{ | ||
"frame": {"x":164,"y":100,"w":66,"h":96}, | ||
"rotated": false, | ||
"trimmed": true, | ||
"spriteSourceSize": {"x":0,"y":0,"w":66,"h":96}, | ||
"sourceSize": {"w":68,"h":96} | ||
}, | ||
"goblingirl/undie-straps.png": | ||
{ | ||
"frame": {"x":2,"y":482,"w":55,"h":19}, | ||
"rotated": false, | ||
"trimmed": false, | ||
"spriteSourceSize": {"x":0,"y":0,"w":55,"h":19}, | ||
"sourceSize": {"w":55,"h":19} | ||
}, | ||
"goblingirl/undies.png": | ||
{ | ||
"frame": {"x":154,"y":278,"w":36,"h":29}, | ||
"rotated": false, | ||
"trimmed": false, | ||
"spriteSourceSize": {"x":0,"y":0,"w":36,"h":29}, | ||
"sourceSize": {"w":36,"h":29} | ||
}, | ||
"spear.png": | ||
{ | ||
"frame": {"x":2,"y":2,"w":22,"h":368}, | ||
"rotated": false, | ||
"trimmed": false, | ||
"spriteSourceSize": {"x":0,"y":0,"w":22,"h":368}, | ||
"sourceSize": {"w":22,"h":368} | ||
}}, | ||
"meta": { | ||
"app": "http://www.codeandweb.com/texturepacker ", | ||
"version": "1.0", | ||
"image": "goblins.png", | ||
"format": "RGBA8888", | ||
"size": {"w":256,"h":512}, | ||
"scale": "1", | ||
"smartupdate": "$TexturePacker:SmartUpdate:f89858b99c6b15e23d39806c4170313a:1/1$" | ||
} | ||
} | ||
{"skeleton":{"hash":"BMzsp4a1APif5tjCQwomTTo3Ino","spine":"2.1.05","width":233.95,"height":354.87},"bones":[{"name":"root"},{"name":"hip","parent":"root","x":0.64,"y":114.41},{"name":"left upper leg","parent":"hip","length":50.39,"x":14.45,"y":2.81,"rotation":-89.09},{"name":"pelvis","parent":"hip","x":1.41,"y":-6.57},{"name":"right upper leg","parent":"hip","length":42.45,"x":-20.07,"y":-6.83,"rotation":-97.49},{"name":"torso","parent":"hip","length":85.82,"x":-6.42,"y":1.97,"rotation":93.92},{"name":"left lower leg","parent":"left upper leg","length":49.89,"x":56.34,"y":0.98,"rotation":-16.65},{"name":"left shoulder","parent":"torso","length":35.43,"x":74.04,"y":-20.38,"rotation":-156.96},{"name":"neck","parent":"torso","length":18.38,"x":81.67,"y":-6.34,"rotation":-1.51},{"name":"right lower leg","parent":"right upper leg","length":58.52,"x":42.99,"y":-0.61,"rotation":-14.34},{"name":"right shoulder","parent":"torso","length":37.24,"x":76.02,"y":18.14,"rotation":133.88},{"name":"head","parent":"neck","length":68.28,"x":20.93,"y":11.59,"rotation":-13.92},{"name":"left arm","parent":"left shoulder","length":35.62,"x":37.85,"y":-2.34,"rotation":28.16},{"name":"left foot","parent":"left lower leg","length":46.5,"x":58.94,"y":-7.61,"rotation":102.43},{"name":"right arm","parent":"right shoulder","length":36.74,"x":37.6,"y":0.31,"rotation":36.32},{"name":"right foot","parent":"right lower leg","length":45.45,"x":64.88,"y":0.04,"rotation":110.3},{"name":"left hand","parent":"left arm","length":11.52,"x":35.62,"y":0.07,"rotation":2.7},{"name":"right hand","parent":"right arm","length":15.32,"x":36.9,"y":0.34,"rotation":2.35}],"slots":[{"name":"left shoulder","bone":"left shoulder","attachment":"left shoulder"},{"name":"left arm","bone":"left arm","attachment":"left arm"},{"name":"left hand item","bone":"left hand","attachment":"spear"},{"name":"left hand","bone":"left hand","attachment":"left hand"},{"name":"left foot","bone":"left foot","attachment":"left foot"},{"name":"left lower leg","bone":"left lower leg","attachment":"left lower leg"},{"name":"left upper leg","bone":"left upper leg","attachment":"left upper leg"},{"name":"neck","bone":"neck","attachment":"neck"},{"name":"torso","bone":"torso","attachment":"torso"},{"name":"pelvis","bone":"pelvis","attachment":"pelvis"},{"name":"right foot","bone":"right foot","attachment":"right foot"},{"name":"right lower leg","bone":"right lower leg","attachment":"right lower leg"},{"name":"undie straps","bone":"pelvis","attachment":"undie straps"},{"name":"undies","bone":"pelvis","attachment":"undies"},{"name":"right upper leg","bone":"right upper leg","attachment":"right upper leg"},{"name":"head","bone":"head","attachment":"head"},{"name":"eyes","bone":"head"},{"name":"right shoulder","bone":"right shoulder","attachment":"right shoulder"},{"name":"right arm","bone":"right arm","attachment":"right arm"},{"name":"right hand item","bone":"right hand"},{"name":"right hand","bone":"right hand","attachment":"right hand"},{"name":"right hand item top","bone":"right hand","attachment":"shield"}],"skins":{"default":{"left hand item":{"dagger":{"x":7.88,"y":-23.45,"rotation":10.47,"width":26,"height":108},"spear":{"x":-4.55,"y":39.2,"rotation":13.04,"width":22,"height":368}},"right hand item":{"dagger":{"x":6.51,"y":-24.15,"rotation":-8.06,"width":26,"height":108}},"right hand item top":{"shield":{"rotation":93.49,"width":70,"height":72}}},"goblin":{"eyes":{"eyes closed":{"name":"goblin/eyes-closed","x":32.21,"y":-21.27,"rotation":-88.92,"width":34,"height":12}},"head":{"head":{"name":"goblin/head","x":25.73,"y":2.33,"rotation":-92.29,"width":103,"height":66}},"left arm":{"left arm":{"name":"goblin/left-arm","x":16.7,"y":-1.69,"scaleX":1.057,"scaleY":1.057,"rotation":33.84,"width":37,"height":35}},"left foot":{"left foot":{"name":"goblin/left-foot","x":24.85,"y":8.74,"rotation":3.32,"width":65,"height":31}},"left hand":{"left hand":{"name":"goblin/left-hand","x":3.47,"y":3.41,"scaleX":0.892,"scaleY":0.892,"rotation":31.14,"width":36,"height":41}},"left lower leg":{"left lower leg":{"name":"goblin/left-lower-leg","x":23.58,"y":-2.06,"rotation":105.75,"width":33,"height":70}},"left shoulder":{"left shoulder":{"name":"goblin/left-shoulder","x":15.56,"y":-2.26,"rotation":62.01,"width":29,"height":44}},"left upper leg":{"left upper leg":{"name":"goblin/left-upper-leg","x":29.68,"y":-3.87,"rotation":89.09,"width":33,"height":73}},"neck":{"neck":{"name":"goblin/neck","x":10.1,"y":0.42,"rotation":-93.69,"width":36,"height":41}},"pelvis":{"pelvis":{"name":"goblin/pelvis","x":-5.61,"y":0.76,"width":62,"height":43}},"right arm":{"right arm":{"name":"goblin/right-arm","x":16.44,"y":-1.04,"rotation":94.32,"width":23,"height":50}},"right foot":{"right foot":{"name":"goblin/right-foot","x":23.56,"y":9.8,"rotation":1.52,"width":63,"height":33}},"right hand":{"right hand":{"name":"goblin/right-hand","x":7.88,"y":2.78,"rotation":91.96,"width":36,"height":37}},"right lower leg":{"right lower leg":{"name":"goblin/right-lower-leg","x":25.68,"y":-3.15,"rotation":111.83,"width":36,"height":76}},"right shoulder":{"right shoulder":{"name":"goblin/right-shoulder","x":15.68,"y":-1.03,"rotation":130.65,"width":39,"height":45}},"right upper leg":{"right upper leg":{"name":"goblin/right-upper-leg","x":20.35,"y":1.47,"rotation":97.49,"width":34,"height":63}},"torso":{"torso":{"name":"goblin/torso","x":38.09,"y":-3.87,"rotation":-94.95,"width":68,"height":96}},"undie straps":{"undie straps":{"name":"goblin/undie-straps","x":-3.87,"y":13.1,"scaleX":1.089,"width":55,"height":19}},"undies":{"undies":{"name":"goblin/undies","x":6.3,"y":0.12,"rotation":0.91,"width":36,"height":29}}},"goblingirl":{"eyes":{"eyes closed":{"name":"goblingirl/eyes-closed","x":28,"y":-25.54,"rotation":-87.04,"width":37,"height":21}},"head":{"head":{"name":"goblingirl/head","x":27.71,"y":-4.32,"rotation":-85.58,"width":103,"height":81}},"left arm":{"left arm":{"name":"goblingirl/left-arm","x":19.64,"y":-2.42,"rotation":33.05,"width":37,"height":35}},"left foot":{"left foot":{"name":"goblingirl/left-foot","x":25.17,"y":7.92,"rotation":3.32,"width":65,"height":31}},"left hand":{"left hand":{"name":"goblingirl/left-hand","x":4.34,"y":2.39,"scaleX":0.896,"scaleY":0.896,"rotation":30.34,"width":35,"height":40}},"left lower leg":{"left lower leg":{"name":"goblingirl/left-lower-leg","x":25.02,"y":-0.6,"rotation":105.75,"width":33,"height":70}},"left shoulder":{"left shoulder":{"name":"goblingirl/left-shoulder","x":19.8,"y":-0.42,"rotation":61.21,"width":28,"height":46}},"left upper leg":{"left upper leg":{"name":"goblingirl/left-upper-leg","x":30.21,"y":-2.95,"rotation":89.09,"width":33,"height":70}},"neck":{"neck":{"name":"goblingirl/neck","x":6.16,"y":-3.14,"rotation":-98.86,"width":35,"height":41}},"pelvis":{"pelvis":{"name":"goblingirl/pelvis","x":-3.87,"y":3.18,"width":62,"height":43}},"right arm":{"right arm":{"name":"goblingirl/right-arm","x":16.85,"y":-0.66,"rotation":93.52,"width":28,"height":50}},"right foot":{"right foot":{"name":"goblingirl/right-foot","x":23.46,"y":9.66,"rotation":1.52,"width":63,"height":33}},"right hand":{"right hand":{"name":"goblingirl/right-hand","x":7.21,"y":3.43,"rotation":91.16,"width":36,"height":37}},"right lower leg":{"right lower leg":{"name":"goblingirl/right-lower-leg","x":26.15,"y":-3.27,"rotation":111.83,"width":36,"height":76}},"right shoulder":{"right shoulder":{"name":"goblingirl/right-shoulder","x":14.46,"y":0.45,"rotation":129.85,"width":39,"height":45}},"right upper leg":{"right upper leg":{"name":"goblingirl/right-upper-leg","x":19.69,"y":2.13,"rotation":97.49,"width":34,"height":63}},"torso":{"torso":{"name":"goblingirl/torso","x":36.28,"y":-5.14,"rotation":-95.74,"width":68,"height":96}},"undie straps":{"undie straps":{"name":"goblingirl/undie-straps","x":-1.51,"y":14.18,"width":55,"height":19}},"undies":{"undies":{"name":"goblingirl/undies","x":5.4,"y":1.7,"width":36,"height":29}}}},"animations":{"walk":{"slots":{"eyes":{"attachment":[{"time":0.7,"name":"eyes closed"},{"time":0.8,"name":null}]}},"bones":{"left upper leg":{"rotate":[{"time":0,"angle":-26.55},{"time":0.1333,"angle":-8.78},{"time":0.2333,"angle":9.51},{"time":0.3666,"angle":30.74},{"time":0.5,"angle":25.33},{"time":0.6333,"angle":26.11},{"time":0.7333,"angle":-7.7},{"time":0.8666,"angle":-21.19},{"time":1,"angle":-26.55}],"translate":[{"time":0,"x":-1.32,"y":1.7},{"time":0.3666,"x":-0.06,"y":2.42},{"time":1,"x":-1.32,"y":1.7}]},"right upper leg":{"rotate":[{"time":0,"angle":42.45},{"time":0.1333,"angle":52.1},{"time":0.2333,"angle":8.53},{"time":0.5,"angle":-16.93},{"time":0.6333,"angle":1.89},{"time":0.7333,"angle":28.06,"curve":[0.462,0.11,1,1]},{"time":0.8666,"angle":58.68,"curve":[0.5,0.02,1,1]},{"time":1,"angle":42.45}],"translate":[{"time":0,"x":6.23,"y":0},{"time":0.2333,"x":2.14,"y":2.4},{"time":0.5,"x":2.44,"y":4.8},{"time":1,"x":6.23,"y":0}]},"left lower leg":{"rotate":[{"time":0,"angle":-22.98},{"time":0.1333,"angle":-63.5},{"time":0.2333,"angle":-73.76},{"time":0.5,"angle":5.11},{"time":0.6333,"angle":-28.29},{"time":0.7333,"angle":4.08},{"time":0.8666,"angle":3.53},{"time":1,"angle":-22.98}],"translate":[{"time":0,"x":0,"y":0},{"time":0.2333,"x":2.55,"y":-0.47},{"time":0.5,"x":0,"y":0,"curve":"stepped"},{"time":1,"x":0,"y":0}]},"left foot":{"rotate":[{"time":0,"angle":-3.69},{"time":0.1333,"angle":-10.42},{"time":0.2333,"angle":-5.01},{"time":0.3666,"angle":3.87},{"time":0.5,"angle":-3.87},{"time":0.6333,"angle":2.78},{"time":0.7333,"angle":1.68},{"time":0.8666,"angle":-8.54},{"time":1,"angle":-3.69}]},"right shoulder":{"rotate":[{"time":0,"angle":5.29,"curve":[0.264,0,0.75,1]},{"time":0.6333,"angle":6.65},{"time":1,"angle":5.29}]},"right arm":{"rotate":[{"time":0,"angle":-4.02,"curve":[0.267,0,0.804,0.99]},{"time":0.6333,"angle":19.78,"curve":[0.307,0,0.787,0.99]},{"time":1,"angle":-4.02}]},"right hand":{"rotate":[{"time":0,"angle":8.98},{"time":0.6333,"angle":0.51},{"time":1,"angle":8.98}]},"left shoulder":{"rotate":[{"time":0,"angle":6.25,"curve":[0.339,0,0.683,1]},{"time":0.5,"angle":-11.78,"curve":[0.281,0,0.686,0.99]},{"time":1,"angle":6.25}],"translate":[{"time":0,"x":1.15,"y":0.23}]},"left hand":{"rotate":[{"time":0,"angle":-21.23,"curve":[0.295,0,0.755,0.98]},{"time":0.5,"angle":-27.28,"curve":[0.241,0,0.75,0.97]},{"time":1,"angle":-21.23}]},"left arm":{"rotate":[{"time":0,"angle":28.37,"curve":[0.339,0,0.683,1]},{"time":0.5,"angle":60.09,"curve":[0.281,0,0.686,0.99]},{"time":1,"angle":28.37}]},"torso":{"rotate":[{"time":0,"angle":-10.28},{"time":0.1333,"angle":-15.38,"curve":[0.545,0,0.818,1]},{"time":0.3666,"angle":-9.78,"curve":[0.58,0.17,0.669,0.99]},{"time":0.6333,"angle":-15.75,"curve":[0.235,0.01,0.795,1]},{"time":0.8666,"angle":-7.06,"curve":[0.209,0,0.816,0.98]},{"time":1,"angle":-10.28}],"translate":[{"time":0,"x":-1.29,"y":1.68}]},"right foot":{"rotate":[{"time":0,"angle":-5.25},{"time":0.2333,"angle":-1.91},{"time":0.3666,"angle":-6.45},{"time":0.5,"angle":-5.39},{"time":0.7333,"angle":-11.68},{"time":0.8666,"angle":0.46},{"time":1,"angle":-5.25}]},"right lower leg":{"rotate":[{"time":0,"angle":-3.39,"curve":[0.316,0.01,0.741,0.98]},{"time":0.1333,"angle":-45.53,"curve":[0.229,0,0.738,0.97]},{"time":0.2333,"angle":-4.83},{"time":0.5,"angle":-19.53},{"time":0.6333,"angle":-64.8},{"time":0.7333,"angle":-82.56,"curve":[0.557,0.18,1,1]},{"time":1,"angle":-3.39}],"translate":[{"time":0,"x":0,"y":0,"curve":"stepped"},{"time":0.5,"x":0,"y":0},{"time":0.6333,"x":2.18,"y":0.21},{"time":1,"x":0,"y":0}]},"hip":{"rotate":[{"time":0,"angle":0,"curve":"stepped"},{"time":1,"angle":0}],"translate":[{"time":0,"x":0,"y":-4.16},{"time":0.1333,"x":0,"y":-7.05,"curve":[0.359,0.47,0.646,0.74]},{"time":0.3666,"x":0,"y":6.78},{"time":0.5,"x":0,"y":-6.13},{"time":0.6333,"x":0,"y":-7.05,"curve":[0.359,0.47,0.646,0.74]},{"time":0.8666,"x":0,"y":6.78},{"time":1,"x":0,"y":-4.16}]},"neck":{"rotate":[{"time":0,"angle":3.6},{"time":0.1333,"angle":17.49},{"time":0.2333,"angle":6.1},{"time":0.3666,"angle":3.45},{"time":0.5,"angle":5.17},{"time":0.6333,"angle":18.36},{"time":0.7333,"angle":6.09},{"time":0.8666,"angle":2.28},{"time":1,"angle":3.6}]},"head":{"rotate":[{"time":0,"angle":3.6,"curve":[0,0,0.704,1.17]},{"time":0.1333,"angle":-0.2},{"time":0.2333,"angle":6.1},{"time":0.3666,"angle":3.45},{"time":0.5,"angle":5.17,"curve":[0,0,0.704,1.61]},{"time":0.6666,"angle":1.1},{"time":0.7333,"angle":6.09},{"time":0.8666,"angle":2.28},{"time":1,"angle":3.6}]}}}}} |
@@ -1,188 +0,924 @@ | ||
{"frames": { | ||
"L_foot.png": | ||
{ | ||
"frame": {"x":401,"y":609,"w":68,"h":51}, | ||
"rotated": false, | ||
"trimmed": false, | ||
"spriteSourceSize": {"x":0,"y":0,"w":68,"h":51}, | ||
"sourceSize": {"w":68,"h":51} | ||
"bones": [ | ||
{ "name": "root" }, | ||
{ "name": "hip", "parent": "root", "x": -5.36, "y": 120.63 }, | ||
{ "name": "L leg upper", "parent": "hip", "length": 90.28, "x": -21.3, "y": -8.59, "rotation": -123.16 }, | ||
{ "name": "R leg upper", "parent": "hip", "length": 79.63, "x": 14.54, "y": -29.09, "rotation": -12.07 }, | ||
{ "name": "back", "parent": "hip", "length": 117.04, "x": 3.43, "y": 0.51, "rotation": 64.34 }, | ||
{ "name": "L arm upper", "parent": "back", "length": 88.01, "x": 120.71, "y": -25.79, "rotation": 108.03 }, | ||
{ "name": "L leg lower", "parent": "L leg upper", "length": 77.82, "x": 89.23, "y": 3.84, "rotation": -74.59 }, | ||
{ "name": "R arm upper", "parent": "back", "length": 82.87, "x": 107.42, "y": 16.92, "rotation": -108.18 }, | ||
{ "name": "R leg lower", "parent": "R leg upper", "length": 67.73, "x": 79.31, "y": -0.23, "rotation": -35.49 }, | ||
{ "name": "fore wing", "parent": "back", "length": 174.95, "x": 78.26, "y": 14.47, "rotation": 111.09 }, | ||
{ "name": "neck", "parent": "back", "length": 65.79, "x": 115.87, "y": -0.67, "rotation": -1.35 }, | ||
{ "name": "L arm lower", "parent": "L arm upper", "length": 57.67, "x": 84.14, "y": -0.57, "rotation": 35.83 }, | ||
{ "name": "L foot", "parent": "L leg lower", "length": 57.67, "x": 74.89, "y": -3.37, "rotation": 79.65 }, | ||
{ "name": "R arm lower", "parent": "R arm upper", "length": 58.76, "x": 80.97, "y": -3.48, "rotation": 56.62 }, | ||
{ "name": "R foot", "parent": "R leg lower", "length": 51.26, "x": 67.69, "y": -1.98, "rotation": 84.54 }, | ||
{ "name": "bone1", "parent": "fore wing", "x": 50.67, "y": 19.71 }, | ||
{ "name": "head", "parent": "neck", "length": 132.5, "x": 116.13, "y": 41.67, "rotation": -40.37 }, | ||
{ "name": "rear wing", "parent": "fore wing", "length": 123.2, "x": 2.22, "y": -11.57, "rotation": -30.89 }, | ||
{ "name": "L hand", "parent": "L arm lower", "length": 33.27, "x": 55.37, "y": 1.3, "rotation": 30.89 }, | ||
{ "name": "R hand", "parent": "R arm lower", "length": 33.34, "x": 58.46, "y": -1.24, "rotation": 25.65 }, | ||
{ "name": "hair back", "parent": "head", "length": 156.52, "x": 43.77, "y": 270.91, "rotation": 22.07 }, | ||
{ "name": "jaw", "parent": "head", "length": 139.22, "x": 8.71, "y": -33.25, "rotation": -46.82 }, | ||
{ "name": "hair mid", "parent": "hair back", "length": 191.57, "x": 155.16, "y": -89.36, "rotation": -17.61 }, | ||
{ "name": "hair front", "parent": "hair mid", "length": 202.73, "x": 48, "y": -100.58, "rotation": -18.29 } | ||
], | ||
"slots": [ | ||
{ "name": "L hand", "bone": "L hand", "attachment": "L_hand" }, | ||
{ "name": "L arm lower", "bone": "L arm lower", "attachment": "L_lower_arm" }, | ||
{ "name": "L arm upper", "bone": "L arm upper", "attachment": "L_upper_arm" }, | ||
{ "name": "rear wing", "bone": "rear wing", "attachment": "rearWing" }, | ||
{ "name": "L foot", "bone": "L foot", "attachment": "L_foot" }, | ||
{ "name": "L leg lower", "bone": "L leg lower", "attachment": "L_lower_leg" }, | ||
{ "name": "L leg upper", "bone": "L leg upper", "attachment": "L_upper_leg" }, | ||
{ "name": "R foot", "bone": "R foot", "attachment": "R_foot" }, | ||
{ "name": "R lower", "bone": "R leg lower", "attachment": "R_lower_leg" }, | ||
{ "name": "R upper", "bone": "R leg upper", "attachment": "R_upper_leg" }, | ||
{ "name": "hip", "bone": "hip", "attachment": "groinal" }, | ||
{ "name": "fore wing", "bone": "fore wing", "attachment": "foreWing" }, | ||
{ "name": "neck", "bone": "neck", "attachment": "neck" }, | ||
{ "name": "back", "bone": "back", "attachment": "vest" }, | ||
{ "name": "R arm upper", "bone": "R arm upper", "attachment": "R_upper_arm" }, | ||
{ "name": "R arm lower", "bone": "R arm lower", "attachment": "R_lower_arm" }, | ||
{ "name": "R hand", "bone": "R hand", "attachment": "R_hand" }, | ||
{ "name": "hair back", "bone": "hair back", "attachment": "backHair" }, | ||
{ "name": "hair front", "bone": "hair front", "attachment": "frontHair" }, | ||
{ "name": "head", "bone": "head", "attachment": "head" }, | ||
{ "name": "jaw", "bone": "jaw", "attachment": "jaw" }, | ||
{ "name": "hair mid", "bone": "hair mid", "attachment": "midHair" } | ||
], | ||
"skins": { | ||
"default": { | ||
"L arm lower": { | ||
"L_lower_arm": { "x": 26.8, "y": 0.38, "rotation": -12.92, "width": 70, "height": 31 } | ||
}, | ||
"L arm upper": { | ||
"L_upper_arm": { "x": 43.44, "y": -0.75, "rotation": 43.61, "width": 78, "height": 74 } | ||
}, | ||
"L foot": { | ||
"L_foot": { "x": 25.73, "y": -3.97, "rotation": -37.09, "width": 68, "height": 51 } | ||
}, | ||
"L hand": { | ||
"L_hand": { "x": 16.53, "y": 5.33, "rotation": -19.13, "width": 55, "height": 64 } | ||
}, | ||
"L leg lower": { | ||
"L_lower_leg": { "x": 32.98, "y": 3.71, "rotation": 50.68, "width": 57, "height": 65 } | ||
}, | ||
"L leg upper": { | ||
"L_upper_leg": { "x": 34.37, "y": 6.89, "rotation": 14.72, "width": 124, "height": 71 } | ||
}, | ||
"R arm lower": { | ||
"R_lower_arm": { "x": 27.12, "y": 1.85, "rotation": -12.78, "width": 70, "height": 31 } | ||
}, | ||
"R arm upper": { | ||
"R_upper_arm": { "x": 40.47, "y": -2.66, "rotation": 43.84, "width": 78, "height": 74 } | ||
}, | ||
"R foot": { | ||
"R_foot": { "x": 19.53, "y": -8.7, "rotation": -36.33, "width": 68, "height": 51 } | ||
}, | ||
"R hand": { | ||
"R_hand": { "x": 17.09, "y": -3.59, "rotation": -38.44, "width": 55, "height": 64 } | ||
}, | ||
"R lower": { | ||
"R_lower_leg": { "x": 33.18, "y": -0.42, "rotation": 50.06, "width": 57, "height": 65 } | ||
}, | ||
"R upper": { | ||
"R_upper_leg": { "x": 26.1, "y": 2.57, "rotation": 14.14, "width": 124, "height": 71 } | ||
}, | ||
"back": { | ||
"vest": { "x": 47.37, "y": 12.63, "rotation": -64.34, "width": 139, "height": 144 } | ||
}, | ||
"fore wing": { | ||
"foreWing": { "x": 103.77, "y": -7.39, "rotation": -175.44, "width": 253, "height": 78 } | ||
}, | ||
"hair back": { | ||
"backHair": { "x": 71.84, "y": -6.96, "rotation": -44.69, "width": 261, "height": 175 } | ||
}, | ||
"hair front": { | ||
"frontHair": { "x": 144.79, "y": -43.44, "rotation": -8.77, "width": 396, "height": 297 } | ||
}, | ||
"hair mid": { | ||
"midHair": { "x": 98.77, "y": -24.19, "rotation": -27.07, "width": 351, "height": 178 } | ||
}, | ||
"head": { | ||
"head": { "x": 54.08, "y": 79.01, "rotation": -22.61, "width": 613, "height": 408 } | ||
}, | ||
"hip": { | ||
"groinal": { "x": -1.3, "y": -22.13, "width": 103, "height": 84 } | ||
}, | ||
"jaw": { | ||
"jaw": { "x": 37.24, "y": -10.62, "rotation": 16.36, "width": 222, "height": 124 } | ||
}, | ||
"neck": { | ||
"neck": { "x": 11.64, "y": 0.09, "rotation": -62.99, "width": 65, "height": 81 } | ||
}, | ||
"rear wing": { | ||
"rearWing": { "x": 72.18, "y": -9.33, "rotation": -144.54, "width": 136, "height": 146 } | ||
} | ||
} | ||
}, | ||
"L_hand.png": | ||
{ | ||
"frame": {"x":968,"y":365,"w":55,"h":64}, | ||
"rotated": false, | ||
"trimmed": false, | ||
"spriteSourceSize": {"x":0,"y":0,"w":55,"h":64}, | ||
"sourceSize": {"w":55,"h":64} | ||
}, | ||
"L_lower_arm.png": | ||
{ | ||
"frame": {"x":401,"y":576,"w":70,"h":31}, | ||
"rotated": false, | ||
"trimmed": false, | ||
"spriteSourceSize": {"x":0,"y":0,"w":70,"h":31}, | ||
"sourceSize": {"w":70,"h":31} | ||
}, | ||
"L_lower_leg.png": | ||
{ | ||
"frame": {"x":963,"y":546,"w":57,"h":65}, | ||
"rotated": false, | ||
"trimmed": false, | ||
"spriteSourceSize": {"x":0,"y":0,"w":57,"h":65}, | ||
"sourceSize": {"w":57,"h":65} | ||
}, | ||
"L_upper_arm.png": | ||
{ | ||
"frame": {"x":518,"y":486,"w":78,"h":74}, | ||
"rotated": false, | ||
"trimmed": false, | ||
"spriteSourceSize": {"x":0,"y":0,"w":78,"h":74}, | ||
"sourceSize": {"w":78,"h":74} | ||
}, | ||
"L_upper_leg.png": | ||
{ | ||
"frame": {"x":126,"y":587,"w":124,"h":71}, | ||
"rotated": false, | ||
"trimmed": false, | ||
"spriteSourceSize": {"x":0,"y":0,"w":124,"h":71}, | ||
"sourceSize": {"w":124,"h":71} | ||
}, | ||
"R_foot.png": | ||
{ | ||
"frame": {"x":473,"y":595,"w":68,"h":51}, | ||
"rotated": false, | ||
"trimmed": false, | ||
"spriteSourceSize": {"x":0,"y":0,"w":68,"h":51}, | ||
"sourceSize": {"w":68,"h":51} | ||
}, | ||
"R_hand.png": | ||
{ | ||
"frame": {"x":968,"y":299,"w":55,"h":64}, | ||
"rotated": false, | ||
"trimmed": false, | ||
"spriteSourceSize": {"x":0,"y":0,"w":55,"h":64}, | ||
"sourceSize": {"w":55,"h":64} | ||
}, | ||
"R_lower_arm.png": | ||
{ | ||
"frame": {"x":506,"y":562,"w":70,"h":31}, | ||
"rotated": false, | ||
"trimmed": false, | ||
"spriteSourceSize": {"x":0,"y":0,"w":70,"h":31}, | ||
"sourceSize": {"w":70,"h":31} | ||
}, | ||
"R_lower_leg.png": | ||
{ | ||
"frame": {"x":963,"y":479,"w":57,"h":65}, | ||
"rotated": false, | ||
"trimmed": false, | ||
"spriteSourceSize": {"x":0,"y":0,"w":57,"h":65}, | ||
"sourceSize": {"w":57,"h":65} | ||
}, | ||
"R_upper_arm.png": | ||
{ | ||
"frame": {"x":518,"y":410,"w":78,"h":74}, | ||
"rotated": false, | ||
"trimmed": false, | ||
"spriteSourceSize": {"x":0,"y":0,"w":78,"h":74}, | ||
"sourceSize": {"w":78,"h":74} | ||
}, | ||
"R_upper_leg.png": | ||
{ | ||
"frame": {"x":0,"y":587,"w":124,"h":71}, | ||
"rotated": false, | ||
"trimmed": false, | ||
"spriteSourceSize": {"x":0,"y":0,"w":124,"h":71}, | ||
"sourceSize": {"w":124,"h":71} | ||
}, | ||
"backHair.png": | ||
{ | ||
"frame": {"x":0,"y":410,"w":261,"h":175}, | ||
"rotated": false, | ||
"trimmed": false, | ||
"spriteSourceSize": {"x":0,"y":0,"w":261,"h":175}, | ||
"sourceSize": {"w":261,"h":175} | ||
}, | ||
"foreWing.png": | ||
{ | ||
"frame": {"x":263,"y":410,"w":253,"h":78}, | ||
"rotated": false, | ||
"trimmed": false, | ||
"spriteSourceSize": {"x":0,"y":0,"w":253,"h":78}, | ||
"sourceSize": {"w":253,"h":78} | ||
}, | ||
"frontHair.png": | ||
{ | ||
"frame": {"x":615,"y":0,"w":396,"h":297}, | ||
"rotated": false, | ||
"trimmed": false, | ||
"spriteSourceSize": {"x":0,"y":0,"w":396,"h":297}, | ||
"sourceSize": {"w":396,"h":297} | ||
}, | ||
"groinal.png": | ||
{ | ||
"frame": {"x":401,"y":490,"w":103,"h":84}, | ||
"rotated": false, | ||
"trimmed": false, | ||
"spriteSourceSize": {"x":0,"y":0,"w":103,"h":84}, | ||
"sourceSize": {"w":103,"h":84} | ||
}, | ||
"head.png": | ||
{ | ||
"frame": {"x":0,"y":0,"w":613,"h":408}, | ||
"rotated": false, | ||
"trimmed": false, | ||
"spriteSourceSize": {"x":0,"y":0,"w":613,"h":408}, | ||
"sourceSize": {"w":613,"h":408} | ||
}, | ||
"jaw.png": | ||
{ | ||
"frame": {"x":598,"y":479,"w":222,"h":124}, | ||
"rotated": false, | ||
"trimmed": false, | ||
"spriteSourceSize": {"x":0,"y":0,"w":222,"h":124}, | ||
"sourceSize": {"w":222,"h":124} | ||
}, | ||
"midHair.png": | ||
{ | ||
"frame": {"x":615,"y":299,"w":351,"h":178}, | ||
"rotated": false, | ||
"trimmed": false, | ||
"spriteSourceSize": {"x":0,"y":0,"w":351,"h":178}, | ||
"sourceSize": {"w":351,"h":178} | ||
}, | ||
"neck.png": | ||
{ | ||
"frame": {"x":252,"y":638,"w":65,"h":81}, | ||
"rotated": false, | ||
"trimmed": false, | ||
"spriteSourceSize": {"x":0,"y":0,"w":65,"h":81}, | ||
"sourceSize": {"w":65,"h":81} | ||
}, | ||
"rearWing.png": | ||
{ | ||
"frame": {"x":263,"y":490,"w":136,"h":146}, | ||
"rotated": false, | ||
"trimmed": false, | ||
"spriteSourceSize": {"x":0,"y":0,"w":136,"h":146}, | ||
"sourceSize": {"w":136,"h":146} | ||
}, | ||
"vest.png": | ||
{ | ||
"frame": {"x":822,"y":479,"w":139,"h":144}, | ||
"rotated": false, | ||
"trimmed": false, | ||
"spriteSourceSize": {"x":0,"y":0,"w":139,"h":144}, | ||
"sourceSize": {"w":139,"h":144} | ||
}}, | ||
"meta": { | ||
"app": "http://www.texturepacker.com", | ||
"version": "1.0", | ||
"image": "Pixie.png", | ||
"format": "RGBA8888", | ||
"size": {"w":1023,"h":719}, | ||
"scale": "1", | ||
"smartupdate": "$TexturePacker:SmartUpdate:d58d60a5edd2ac7a15c00bcd989497b2$" | ||
"animations": { | ||
"jump": { | ||
"bones": { | ||
"hip": { | ||
"rotate": [ | ||
{ "time": 0, "angle": 0, "curve": "stepped" }, | ||
{ "time": 0.6666, "angle": 0 } | ||
], | ||
"translate": [ | ||
{ | ||
"time": 0, | ||
"x": 0, | ||
"y": 0, | ||
"curve": [ 0.25, 0, 0.75, 1 ] | ||
}, | ||
{ | ||
"time": 0.3666, | ||
"x": 48.25, | ||
"y": 387.29, | ||
"curve": [ 0.25, 0, 0.75, 1 ] | ||
}, | ||
{ "time": 0.6666, "x": 0, "y": 0 } | ||
], | ||
"scale": [ | ||
{ "time": 0, "x": 1, "y": 1, "curve": "stepped" }, | ||
{ "time": 0.6666, "x": 1, "y": 1 } | ||
] | ||
}, | ||
"L leg upper": { | ||
"rotate": [ | ||
{ "time": 0, "angle": 0 }, | ||
{ "time": 0.3666, "angle": -52.49 }, | ||
{ "time": 0.6666, "angle": 0 } | ||
], | ||
"translate": [ | ||
{ "time": 0, "x": 0, "y": 0, "curve": "stepped" }, | ||
{ "time": 0.6666, "x": 0, "y": 0 } | ||
], | ||
"scale": [ | ||
{ "time": 0, "x": 1, "y": 1, "curve": "stepped" }, | ||
{ "time": 0.6666, "x": 1, "y": 1 } | ||
] | ||
}, | ||
"R leg upper": { | ||
"rotate": [ | ||
{ "time": 0, "angle": 0 }, | ||
{ "time": 0.3666, "angle": 42.23 }, | ||
{ "time": 0.6666, "angle": 0 } | ||
], | ||
"translate": [ | ||
{ "time": 0, "x": 0, "y": 0, "curve": "stepped" }, | ||
{ "time": 0.6666, "x": 0, "y": 0 } | ||
], | ||
"scale": [ | ||
{ "time": 0, "x": 1, "y": 1, "curve": "stepped" }, | ||
{ "time": 0.6666, "x": 1, "y": 1 } | ||
] | ||
}, | ||
"back": { | ||
"rotate": [ | ||
{ "time": 0, "angle": 0 }, | ||
{ "time": 0.3666, "angle": 17.45 }, | ||
{ "time": 0.6666, "angle": 0 } | ||
], | ||
"translate": [ | ||
{ "time": 0, "x": 0, "y": 0 }, | ||
{ "time": 0.3666, "x": -12.48, "y": 6.24 }, | ||
{ "time": 0.6666, "x": 0, "y": 0 } | ||
], | ||
"scale": [ | ||
{ "time": 0, "x": 1, "y": 1, "curve": "stepped" }, | ||
{ "time": 0.6666, "x": 1, "y": 1 } | ||
] | ||
}, | ||
"L arm upper": { | ||
"rotate": [ | ||
{ "time": 0, "angle": 0 }, | ||
{ "time": 0.3666, "angle": -23.04 }, | ||
{ "time": 0.6666, "angle": 0 } | ||
], | ||
"translate": [ | ||
{ "time": 0, "x": 0, "y": 0, "curve": "stepped" }, | ||
{ "time": 0.6666, "x": 0, "y": 0 } | ||
], | ||
"scale": [ | ||
{ "time": 0, "x": 1, "y": 1, "curve": "stepped" }, | ||
{ "time": 0.6666, "x": 1, "y": 1 } | ||
] | ||
}, | ||
"L leg lower": { | ||
"rotate": [ | ||
{ "time": 0, "angle": 0 }, | ||
{ "time": 0.3666, "angle": 21.33 }, | ||
{ "time": 0.6666, "angle": 0 } | ||
], | ||
"translate": [ | ||
{ "time": 0, "x": 0, "y": 0, "curve": "stepped" }, | ||
{ "time": 0.6666, "x": 0, "y": 0 } | ||
], | ||
"scale": [ | ||
{ "time": 0, "x": 1, "y": 1, "curve": "stepped" }, | ||
{ "time": 0.6666, "x": 1, "y": 1 } | ||
] | ||
}, | ||
"R arm upper": { | ||
"rotate": [ | ||
{ "time": 0, "angle": 0 }, | ||
{ "time": 0.3666, "angle": -20.49 }, | ||
{ "time": 0.6666, "angle": 0 } | ||
], | ||
"translate": [ | ||
{ "time": 0, "x": 0, "y": 0, "curve": "stepped" }, | ||
{ "time": 0.6666, "x": 0, "y": 0 } | ||
], | ||
"scale": [ | ||
{ "time": 0, "x": 1, "y": 1, "curve": "stepped" }, | ||
{ "time": 0.6666, "x": 1, "y": 1 } | ||
] | ||
}, | ||
"R leg lower": { | ||
"rotate": [ | ||
{ "time": 0, "angle": 0 }, | ||
{ "time": 0.3666, "angle": 18.73 }, | ||
{ "time": 0.6666, "angle": 0 } | ||
], | ||
"translate": [ | ||
{ "time": 0, "x": 0, "y": 0, "curve": "stepped" }, | ||
{ "time": 0.6666, "x": 0, "y": 0 } | ||
], | ||
"scale": [ | ||
{ "time": 0, "x": 1, "y": 1, "curve": "stepped" }, | ||
{ "time": 0.6666, "x": 1, "y": 1 } | ||
] | ||
}, | ||
"fore wing": { | ||
"rotate": [ | ||
{ "time": 0, "angle": 0 }, | ||
{ "time": 0.1333, "angle": -17.83 }, | ||
{ "time": 0.2333, "angle": -0.57 }, | ||
{ "time": 0.3333, "angle": -22.57 }, | ||
{ "time": 0.4333, "angle": 6.45 }, | ||
{ "time": 0.5333, "angle": -15.51 }, | ||
{ "time": 0.6666, "angle": 0 } | ||
], | ||
"translate": [ | ||
{ "time": 0, "x": 0, "y": 0, "curve": "stepped" }, | ||
{ "time": 0.6666, "x": 0, "y": 0 } | ||
], | ||
"scale": [ | ||
{ "time": 0, "x": 1, "y": 1, "curve": "stepped" }, | ||
{ "time": 0.6666, "x": 1, "y": 1 } | ||
] | ||
}, | ||
"neck": { | ||
"rotate": [ | ||
{ "time": 0, "angle": 0, "curve": "stepped" }, | ||
{ "time": 0.6666, "angle": 0 } | ||
], | ||
"translate": [ | ||
{ "time": 0, "x": 0, "y": 0, "curve": "stepped" }, | ||
{ "time": 0.6666, "x": 0, "y": 0 } | ||
], | ||
"scale": [ | ||
{ "time": 0, "x": 1, "y": 1, "curve": "stepped" }, | ||
{ "time": 0.6666, "x": 1, "y": 1 } | ||
] | ||
}, | ||
"L arm lower": { | ||
"rotate": [ | ||
{ "time": 0, "angle": 0 }, | ||
{ "time": 0.3666, "angle": 16.6 }, | ||
{ "time": 0.6666, "angle": 0 } | ||
], | ||
"translate": [ | ||
{ "time": 0, "x": 0, "y": 0, "curve": "stepped" }, | ||
{ "time": 0.6666, "x": 0, "y": 0 } | ||
], | ||
"scale": [ | ||
{ "time": 0, "x": 1, "y": 1, "curve": "stepped" }, | ||
{ "time": 0.6666, "x": 1, "y": 1 } | ||
] | ||
}, | ||
"L foot": { | ||
"rotate": [ | ||
{ "time": 0, "angle": 0 }, | ||
{ "time": 0.3333, "angle": -19.99 }, | ||
{ "time": 0.6666, "angle": 0 } | ||
], | ||
"translate": [ | ||
{ "time": 0, "x": 0, "y": 0 }, | ||
{ "time": 0.3333, "x": -13.89, "y": -5.83 }, | ||
{ "time": 0.6666, "x": 0, "y": 0 } | ||
], | ||
"scale": [ | ||
{ "time": 0, "x": 1, "y": 1, "curve": "stepped" }, | ||
{ "time": 0.6666, "x": 1, "y": 1 } | ||
] | ||
}, | ||
"R arm lower": { | ||
"rotate": [ | ||
{ "time": 0, "angle": 0 }, | ||
{ "time": 0.3666, "angle": 54.98 }, | ||
{ "time": 0.6666, "angle": 0 } | ||
], | ||
"translate": [ | ||
{ "time": 0, "x": 0, "y": 0, "curve": "stepped" }, | ||
{ "time": 0.6666, "x": 0, "y": 0 } | ||
], | ||
"scale": [ | ||
{ "time": 0, "x": 1, "y": 1, "curve": "stepped" }, | ||
{ "time": 0.6666, "x": 1, "y": 1 } | ||
] | ||
}, | ||
"R foot": { | ||
"rotate": [ | ||
{ "time": 0, "angle": 0 }, | ||
{ "time": 0.3666, "angle": -4.87 }, | ||
{ "time": 0.6666, "angle": 0 } | ||
], | ||
"translate": [ | ||
{ "time": 0, "x": 0, "y": 0, "curve": "stepped" }, | ||
{ "time": 0.6666, "x": 0, "y": 0 } | ||
], | ||
"scale": [ | ||
{ "time": 0, "x": 1, "y": 1, "curve": "stepped" }, | ||
{ "time": 0.6666, "x": 1, "y": 1 } | ||
] | ||
}, | ||
"bone1": { | ||
"rotate": [ | ||
{ "time": 0, "angle": 0, "curve": "stepped" }, | ||
{ "time": 0.6666, "angle": 0 } | ||
], | ||
"translate": [ | ||
{ "time": 0, "x": 0, "y": 0, "curve": "stepped" }, | ||
{ "time": 0.6666, "x": 0, "y": 0 } | ||
], | ||
"scale": [ | ||
{ "time": 0, "x": 1, "y": 1, "curve": "stepped" }, | ||
{ "time": 0.6666, "x": 1, "y": 1 } | ||
] | ||
}, | ||
"head": { | ||
"rotate": [ | ||
{ | ||
"time": 0, | ||
"angle": 0, | ||
"curve": [ 0.25, 0, 0.75, 1 ] | ||
}, | ||
{ | ||
"time": 0.3743, | ||
"angle": 13.84, | ||
"curve": [ 0.25, 0, 0.75, 1 ] | ||
}, | ||
{ "time": 0.6666, "angle": 0 } | ||
], | ||
"translate": [ | ||
{ "time": 0, "x": 0, "y": 0, "curve": "stepped" }, | ||
{ "time": 0.6666, "x": 0, "y": 0 } | ||
], | ||
"scale": [ | ||
{ "time": 0, "x": 1, "y": 1, "curve": "stepped" }, | ||
{ "time": 0.6666, "x": 1, "y": 1 } | ||
] | ||
}, | ||
"rear wing": { | ||
"rotate": [ | ||
{ "time": 0, "angle": 0 }, | ||
{ "time": 0.1333, "angle": 30.94 }, | ||
{ "time": 0.2333, "angle": -24.35 }, | ||
{ "time": 0.3333, "angle": 25.11 }, | ||
{ "time": 0.4333, "angle": -6.54 }, | ||
{ "time": 0.5333, "angle": 24.65 }, | ||
{ "time": 0.6666, "angle": 0 } | ||
], | ||
"translate": [ | ||
{ "time": 0, "x": 0, "y": 0, "curve": "stepped" }, | ||
{ "time": 0.6666, "x": 0, "y": 0 } | ||
], | ||
"scale": [ | ||
{ "time": 0, "x": 1, "y": 1, "curve": "stepped" }, | ||
{ "time": 0.6666, "x": 1, "y": 1 } | ||
] | ||
}, | ||
"L hand": { | ||
"rotate": [ | ||
{ "time": 0, "angle": 0 }, | ||
{ "time": 0.3666, "angle": 57.5 }, | ||
{ "time": 0.6666, "angle": 0 } | ||
], | ||
"translate": [ | ||
{ "time": 0, "x": 0, "y": 0, "curve": "stepped" }, | ||
{ "time": 0.6666, "x": 0, "y": 0 } | ||
], | ||
"scale": [ | ||
{ "time": 0, "x": 1, "y": 1, "curve": "stepped" }, | ||
{ "time": 0.6666, "x": 1, "y": 1 } | ||
] | ||
}, | ||
"R hand": { | ||
"rotate": [ | ||
{ "time": 0, "angle": 0 }, | ||
{ "time": 0.3666, "angle": 3.65 }, | ||
{ "time": 0.6666, "angle": 0 } | ||
], | ||
"translate": [ | ||
{ "time": 0, "x": 0, "y": 0, "curve": "stepped" }, | ||
{ "time": 0.6666, "x": 0, "y": 0 } | ||
], | ||
"scale": [ | ||
{ "time": 0, "x": 1, "y": 1, "curve": "stepped" }, | ||
{ "time": 0.6666, "x": 1, "y": 1 } | ||
] | ||
}, | ||
"hair back": { | ||
"rotate": [ | ||
{ "time": 0, "angle": 0 }, | ||
{ "time": 0.3333, "angle": 6.5 }, | ||
{ "time": 0.6666, "angle": 0 } | ||
], | ||
"translate": [ | ||
{ "time": 0, "x": 0, "y": 0, "curve": "stepped" }, | ||
{ "time": 0.6666, "x": 0, "y": 0 } | ||
], | ||
"scale": [ | ||
{ "time": 0, "x": 1, "y": 1, "curve": "stepped" }, | ||
{ "time": 0.6666, "x": 1, "y": 1 } | ||
] | ||
}, | ||
"jaw": { | ||
"rotate": [ | ||
{ "time": 0, "angle": 0 }, | ||
{ "time": 0.3666, "angle": 5.72 }, | ||
{ "time": 0.6666, "angle": 0 } | ||
], | ||
"translate": [ | ||
{ "time": 0, "x": 0, "y": 0 }, | ||
{ "time": 0.3666, "x": -4.28, "y": 3.04 }, | ||
{ "time": 0.6666, "x": 0, "y": 0 } | ||
], | ||
"scale": [ | ||
{ "time": 0, "x": 1, "y": 1 }, | ||
{ "time": 0.3666, "x": 1.169, "y": 1 }, | ||
{ "time": 0.6666, "x": 1, "y": 1 } | ||
] | ||
}, | ||
"hair mid": { | ||
"rotate": [ | ||
{ "time": 0, "angle": 0 }, | ||
{ "time": 0.3333, "angle": 6.71 }, | ||
{ "time": 0.6666, "angle": 0 } | ||
], | ||
"translate": [ | ||
{ "time": 0, "x": 0, "y": 0, "curve": "stepped" }, | ||
{ "time": 0.6666, "x": 0, "y": 0 } | ||
], | ||
"scale": [ | ||
{ "time": 0, "x": 1, "y": 1, "curve": "stepped" }, | ||
{ "time": 0.6666, "x": 1, "y": 1 } | ||
] | ||
}, | ||
"hair front": { | ||
"rotate": [ | ||
{ "time": 0, "angle": 0 }, | ||
{ "time": 0.3333, "angle": -8.18 }, | ||
{ "time": 0.6666, "angle": 0 } | ||
], | ||
"translate": [ | ||
{ "time": 0, "x": 0, "y": 0 }, | ||
{ "time": 0.3333, "x": -17.24, "y": 20.35 }, | ||
{ "time": 0.6666, "x": 0, "y": 0 } | ||
], | ||
"scale": [ | ||
{ "time": 0, "x": 1, "y": 1, "curve": "stepped" }, | ||
{ "time": 0.6666, "x": 1, "y": 1 } | ||
] | ||
} | ||
} | ||
}, | ||
"running": { | ||
"bones": { | ||
"hip": { | ||
"rotate": [ | ||
{ "time": 0, "angle": 0 } | ||
], | ||
"translate": [ | ||
{ "time": 0, "x": 0, "y": 2.79 }, | ||
{ "time": 0.2333, "x": 0, "y": -15.43 }, | ||
{ "time": 0.5, "x": 0, "y": 8 }, | ||
{ "time": 0.7, "x": 0, "y": -8.92 }, | ||
{ "time": 0.9666, "x": 0, "y": 2.79 } | ||
] | ||
}, | ||
"R leg upper": { | ||
"rotate": [ | ||
{ | ||
"time": 0, | ||
"angle": 0, | ||
"curve": [ 0.25, 0, 0.75, 1 ] | ||
}, | ||
{ "time": 0.5, "angle": -150.25 }, | ||
{ "time": 0.7, "angle": -110.91 }, | ||
{ | ||
"time": 0.8333, | ||
"angle": -25.14, | ||
"curve": [ 0.155, 0.16, 0.75, 1 ] | ||
}, | ||
{ "time": 1, "angle": 0 } | ||
], | ||
"translate": [ | ||
{ "time": 0, "x": 0, "y": 0 }, | ||
{ "time": 0.5, "x": -35.15, "y": 0 }, | ||
{ "time": 0.7, "x": -6.5, "y": 0 }, | ||
{ "time": 1, "x": 2.6, "y": 0 } | ||
] | ||
}, | ||
"R leg lower": { | ||
"rotate": [ | ||
{ | ||
"time": 0, | ||
"angle": 0, | ||
"curve": [ 0.25, 0, 0.75, 1 ] | ||
}, | ||
{ "time": 0.5, "angle": 7.47 }, | ||
{ "time": 0.7, "angle": -53.49 }, | ||
{ | ||
"time": 0.8333, | ||
"angle": -85.3, | ||
"curve": [ 0.16, 0.21, 0.75, 1 ] | ||
}, | ||
{ "time": 1, "angle": 0 } | ||
], | ||
"translate": [ | ||
{ "time": 0.7, "x": 2.5, "y": -1.47 }, | ||
{ "time": 0.8333, "x": 3.93, "y": -5.18 } | ||
] | ||
}, | ||
"R foot": { | ||
"rotate": [ | ||
{ "time": 0, "angle": 0 }, | ||
{ "time": 0.2, "angle": 7.03 }, | ||
{ "time": 0.2333, "angle": 18.45 }, | ||
{ "time": 0.2666, "angle": 26.41 }, | ||
{ "time": 0.3, "angle": 29.63 }, | ||
{ "time": 0.5, "angle": -22.49 }, | ||
{ "time": 0.7, "angle": -30.93 }, | ||
{ "time": 0.8333, "angle": -50.37 }, | ||
{ "time": 1, "angle": 0 } | ||
], | ||
"translate": [ | ||
{ "time": 0.5, "x": 0.7, "y": -3.84 } | ||
] | ||
}, | ||
"L leg upper": { | ||
"rotate": [ | ||
{ | ||
"time": 0, | ||
"angle": -30.25, | ||
"curve": [ 0.25, 0, 0.75, 1 ] | ||
}, | ||
{ "time": 0.2333, "angle": 77.26 }, | ||
{ | ||
"time": 0.5, | ||
"angle": 104.21, | ||
"curve": [ 0.25, 0, 0.29, 1 ] | ||
}, | ||
{ "time": 1, "angle": -30.25 } | ||
], | ||
"translate": [ | ||
{ "time": 0, "x": 0, "y": 0 }, | ||
{ "time": 0.5, "x": 22.13, "y": -16.92 }, | ||
{ "time": 1, "x": 0, "y": 0 } | ||
], | ||
"scale": [ | ||
{ "time": 0, "x": 1, "y": 1, "curve": "stepped" }, | ||
{ "time": 1, "x": 1, "y": 1 } | ||
] | ||
}, | ||
"L leg lower": { | ||
"rotate": [ | ||
{ | ||
"time": 0, | ||
"angle": 22.34, | ||
"curve": [ 0.25, 0, 0.75, 1 ] | ||
}, | ||
{ | ||
"time": 0.2333, | ||
"angle": -65.53, | ||
"curve": [ 0.094, -0.03, 0.678, 1.08 ] | ||
}, | ||
{ | ||
"time": 0.5, | ||
"angle": 43.39, | ||
"curve": [ 0.25, 0, 0.287, 1 ] | ||
}, | ||
{ "time": 1, "angle": 0 } | ||
], | ||
"translate": [ | ||
{ "time": 0, "x": 0, "y": 0 }, | ||
{ "time": 1, "x": 0.58, "y": -1.74 } | ||
], | ||
"scale": [ | ||
{ "time": 0, "x": 1, "y": 1, "curve": "stepped" }, | ||
{ "time": 1, "x": 1, "y": 1 } | ||
] | ||
}, | ||
"L foot": { | ||
"rotate": [ | ||
{ "time": 0, "angle": -22.23 }, | ||
{ "time": 0.2333, "angle": -1.44 }, | ||
{ "time": 0.5, "angle": 5.06 }, | ||
{ "time": 0.6333, "angle": 27.11 }, | ||
{ "time": 0.6666, "angle": 50.34 }, | ||
{ "time": 1, "angle": -12.47 } | ||
], | ||
"translate": [ | ||
{ "time": 0, "x": -4.13, "y": -3.42 }, | ||
{ "time": 0.6333, "x": 1.22, "y": 1.73 }, | ||
{ "time": 0.6666, "x": -0.56, "y": 5.49 }, | ||
{ "time": 1, "x": -0.87, "y": -0.96 } | ||
], | ||
"scale": [ | ||
{ "time": 0, "x": 1, "y": 1, "curve": "stepped" }, | ||
{ "time": 1, "x": 1, "y": 1 } | ||
] | ||
}, | ||
"back": { | ||
"rotate": [ | ||
{ "time": 0, "angle": -1.79 }, | ||
{ "time": 0.2333, "angle": -10.71 }, | ||
{ "time": 0.5, "angle": -2.16 }, | ||
{ "time": 0.7, "angle": -10.27 }, | ||
{ "time": 0.9666, "angle": -1.79 } | ||
], | ||
"translate": [ | ||
{ "time": 0, "x": 0, "y": 0 }, | ||
{ "time": 0.2333, "x": 5.2, "y": -6.5 }, | ||
{ "time": 0.5, "x": 1.3, "y": -2.6 }, | ||
{ "time": 0.7, "x": 7.81, "y": -6.5 }, | ||
{ "time": 0.9666, "x": 0, "y": 0 } | ||
] | ||
}, | ||
"R arm upper": { | ||
"rotate": [ | ||
{ | ||
"time": 0, | ||
"angle": 0, | ||
"curve": [ 0.25, 0, 0.75, 1 ] | ||
}, | ||
{ "time": 0.5, "angle": 235.62 }, | ||
{ "time": 0.7, "angle": -57.38 }, | ||
{ "time": 0.9666, "angle": 0 } | ||
], | ||
"translate": [ | ||
{ "time": 0, "x": 0, "y": 0, "curve": "stepped" }, | ||
{ "time": 0.9666, "x": 0, "y": 0 } | ||
], | ||
"scale": [ | ||
{ "time": 0, "x": 1, "y": 1 } | ||
] | ||
}, | ||
"R arm lower": { | ||
"rotate": [ | ||
{ | ||
"time": 0, | ||
"angle": 0, | ||
"curve": [ 0.068, 0, 0.632, 1.14 ] | ||
}, | ||
{ "time": 0.5, "angle": -34.21 }, | ||
{ | ||
"time": 0.7, | ||
"angle": 17.35, | ||
"curve": [ 0.221, 0.26, 0.75, 1 ] | ||
}, | ||
{ "time": 0.9666, "angle": 0 } | ||
], | ||
"translate": [ | ||
{ "time": 0, "x": 0, "y": 0, "curve": "stepped" }, | ||
{ "time": 0.9666, "x": 0, "y": 0 } | ||
], | ||
"scale": [ | ||
{ "time": 0, "x": 1, "y": 1 } | ||
] | ||
}, | ||
"R hand": { | ||
"rotate": [ | ||
{ "time": 0, "angle": 0 }, | ||
{ "time": 0.5, "angle": 30.13 }, | ||
{ "time": 0.7, "angle": 3.91 }, | ||
{ "time": 0.9666, "angle": 0 } | ||
], | ||
"translate": [ | ||
{ "time": 0, "x": 0, "y": 0, "curve": "stepped" }, | ||
{ "time": 0.9666, "x": 0, "y": 0 } | ||
], | ||
"scale": [ | ||
{ "time": 0, "x": 1, "y": 1 } | ||
] | ||
}, | ||
"L arm upper": { | ||
"rotate": [ | ||
{ | ||
"time": 0, | ||
"angle": 0, | ||
"curve": [ 0.25, 0, 0.75, 1 ] | ||
}, | ||
{ | ||
"time": 0.5, | ||
"angle": -190.85, | ||
"curve": [ 0.25, 0, 0.75, 1 ] | ||
}, | ||
{ "time": 0.9666, "angle": 0 } | ||
], | ||
"translate": [ | ||
{ "time": 0, "x": 0, "y": 0, "curve": "stepped" }, | ||
{ "time": 0.9666, "x": 0, "y": 0 } | ||
] | ||
}, | ||
"L hand": { | ||
"rotate": [ | ||
{ | ||
"time": 0, | ||
"angle": 0, | ||
"curve": [ 0.25, 1, 0.75, 1 ] | ||
}, | ||
{ | ||
"time": 0.5, | ||
"angle": -15.76, | ||
"curve": [ 0.25, 0, 0.75, 1 ] | ||
}, | ||
{ "time": 0.9666, "angle": 0 } | ||
], | ||
"translate": [ | ||
{ "time": 0, "x": 0, "y": 0, "curve": "stepped" }, | ||
{ "time": 0.9666, "x": 0, "y": 0 } | ||
] | ||
}, | ||
"L arm lower": { | ||
"rotate": [ | ||
{ "time": 0, "angle": 0 }, | ||
{ "time": 0.3, "angle": 45.27 }, | ||
{ "time": 0.5, "angle": -20.97 }, | ||
{ "time": 0.9666, "angle": 0 } | ||
], | ||
"translate": [ | ||
{ "time": 0, "x": 0, "y": 0, "curve": "stepped" }, | ||
{ "time": 0.9666, "x": 0, "y": 0 } | ||
] | ||
}, | ||
"fore wing": { | ||
"rotate": [ | ||
{ "time": 0, "angle": 0 }, | ||
{ "time": 0.2333, "angle": 17.36 }, | ||
{ "time": 0.5333, "angle": -2.27 }, | ||
{ "time": 0.7333, "angle": 20.14 }, | ||
{ "time": 0.9666, "angle": 0 } | ||
], | ||
"translate": [ | ||
{ "time": 0, "x": 0, "y": 0, "curve": "stepped" }, | ||
{ "time": 0.9666, "x": 0, "y": 0 } | ||
] | ||
}, | ||
"rear wing": { | ||
"rotate": [ | ||
{ "time": 0, "angle": 0 }, | ||
{ "time": 0.2333, "angle": 17.36 }, | ||
{ "time": 0.5333, "angle": -2.27 }, | ||
{ "time": 0.7333, "angle": 20.14 }, | ||
{ "time": 0.9666, "angle": 0 } | ||
], | ||
"translate": [ | ||
{ "time": 0, "x": 0, "y": 0, "curve": "stepped" }, | ||
{ "time": 0.9666, "x": 0, "y": 0 } | ||
] | ||
}, | ||
"head": { | ||
"rotate": [ | ||
{ "time": 0, "angle": 0 }, | ||
{ "time": 0.2666, "angle": -13.61 }, | ||
{ "time": 0.5, "angle": 0 }, | ||
{ "time": 0.7333, "angle": -11.08 }, | ||
{ "time": 0.9666, "angle": 0 } | ||
], | ||
"translate": [ | ||
{ "time": 0, "x": 0, "y": 0 }, | ||
{ "time": 0.2666, "x": 4.54, "y": -38.81 }, | ||
{ "time": 0.5, "x": 0, "y": 0 }, | ||
{ "time": 0.7333, "x": 0.32, "y": -40.1 }, | ||
{ "time": 0.9666, "x": 0, "y": 0 } | ||
] | ||
}, | ||
"jaw": { | ||
"rotate": [ | ||
{ "time": 0, "angle": 0 }, | ||
{ "time": 0.2333, "angle": -3.93 }, | ||
{ "time": 0.4666, "angle": 8.79 }, | ||
{ "time": 0.7333, "angle": 13.97 }, | ||
{ "time": 0.9666, "angle": 0 } | ||
], | ||
"translate": [ | ||
{ "time": 0, "x": 0, "y": 0 }, | ||
{ "time": 0.2333, "x": 4.63, "y": 6.7 }, | ||
{ "time": 0.4666, "x": 6.67, "y": -4.82 }, | ||
{ "time": 0.7333, "x": 6.8, "y": -7.61 }, | ||
{ "time": 0.9666, "x": 0, "y": 0 } | ||
] | ||
}, | ||
"hair back": { | ||
"rotate": [ | ||
{ | ||
"time": 0, | ||
"angle": 0, | ||
"curve": [ 0.25, 0, 0.75, 1 ] | ||
}, | ||
{ | ||
"time": 0.2333, | ||
"angle": -3.9, | ||
"curve": [ 0.25, 0, 0.75, 1 ] | ||
}, | ||
{ | ||
"time": 0.5, | ||
"angle": 0, | ||
"curve": [ 0.25, 0, 0.75, 1 ] | ||
}, | ||
{ | ||
"time": 0.7666, | ||
"angle": -4, | ||
"curve": [ 0.25, 0, 0.75, 1 ] | ||
}, | ||
{ "time": 0.9666, "angle": 0 } | ||
], | ||
"translate": [ | ||
{ "time": 0, "x": 0, "y": 0 }, | ||
{ "time": 0.2333, "x": -1.3, "y": -6.5 }, | ||
{ "time": 0.5, "x": 0, "y": 0 }, | ||
{ "time": 0.7666, "x": -3.49, "y": -10.15 }, | ||
{ "time": 0.9666, "x": 0, "y": 0 } | ||
] | ||
}, | ||
"hair front": { | ||
"rotate": [ | ||
{ | ||
"time": 0, | ||
"angle": 0, | ||
"curve": [ 0.25, 0, 0.75, 1 ] | ||
}, | ||
{ | ||
"time": 0.2333, | ||
"angle": -3.9, | ||
"curve": [ 0.25, 0, 0.75, 1 ] | ||
}, | ||
{ | ||
"time": 0.5, | ||
"angle": 0, | ||
"curve": [ 0.25, 0, 0.75, 1 ] | ||
}, | ||
{ | ||
"time": 0.7666, | ||
"angle": -4, | ||
"curve": [ 0.25, 0, 0.75, 1 ] | ||
}, | ||
{ "time": 0.9666, "angle": 0 } | ||
], | ||
"translate": [ | ||
{ "time": 0, "x": 0, "y": 0, "curve": "stepped" }, | ||
{ "time": 0.5, "x": 0, "y": 0, "curve": "stepped" }, | ||
{ "time": 0.9666, "x": 0, "y": 0 } | ||
] | ||
}, | ||
"hair mid": { | ||
"rotate": [ | ||
{ | ||
"time": 0, | ||
"angle": 0, | ||
"curve": [ 0.25, 0, 0.75, 1 ] | ||
}, | ||
{ | ||
"time": 0.2333, | ||
"angle": -3.9, | ||
"curve": [ 0.25, 0, 0.75, 1 ] | ||
}, | ||
{ | ||
"time": 0.5, | ||
"angle": 0, | ||
"curve": [ 0.25, 0, 0.75, 1 ] | ||
}, | ||
{ | ||
"time": 0.7666, | ||
"angle": -4, | ||
"curve": [ 0.25, 0, 0.75, 1 ] | ||
}, | ||
{ "time": 0.9666, "angle": 0 } | ||
], | ||
"translate": [ | ||
{ "time": 0, "x": 0, "y": 0, "curve": "stepped" }, | ||
{ "time": 0.5, "x": 0, "y": 0, "curve": "stepped" }, | ||
{ "time": 0.9666, "x": 0, "y": 0 } | ||
] | ||
} | ||
} | ||
} | ||
} | ||
} |
@@ -1,196 +0,787 @@ | ||
{"frames": { | ||
"head": | ||
{ | ||
"frame": {"x":1,"y":122,"w":121,"h":132}, | ||
"rotated": false, | ||
"trimmed": false, | ||
"spriteSourceSize": {"x":0,"y":0,"w":121,"h":132}, | ||
"sourceSize": {"w":121,"h":132} | ||
"bones": [ | ||
{ "name": "root" }, | ||
{ "name": "hip", "parent": "root", "x": 0.64, "y": 114.41 }, | ||
{ "name": "left upper leg", "parent": "hip", "length": 50.39, "x": 14.45, "y": 2.81, "rotation": -89.09 }, | ||
{ "name": "left lower leg", "parent": "left upper leg", "length": 56.45, "x": 51.78, "y": 3.46, "rotation": -16.65 }, | ||
{ "name": "left foot", "parent": "left lower leg", "length": 46.5, "x": 64.02, "y": -8.67, "rotation": 102.43 }, | ||
{ "name": "right upper leg", "parent": "hip", "length": 45.76, "x": -18.27, "rotation": -101.13 }, | ||
{ "name": "right lower leg", "parent": "right upper leg", "length": 58.52, "x": 50.21, "y": 0.6, "rotation": -10.7 }, | ||
{ "name": "right foot", "parent": "right lower leg", "length": 45.45, "x": 64.88, "y": 0.04, "rotation": 110.3 }, | ||
{ "name": "torso", "parent": "hip", "length": 85.82, "x": -6.42, "y": 1.97, "rotation": 94.95 }, | ||
{ "name": "neck", "parent": "torso", "length": 18.38, "x": 83.64, "y": -1.78, "rotation": 0.9 }, | ||
{ "name": "head", "parent": "neck", "length": 68.28, "x": 19.09, "y": 6.97, "rotation": -8.94 }, | ||
{ "name": "right shoulder", "parent": "torso", "length": 49.95, "x": 81.9, "y": 6.79, "rotation": 130.6 }, | ||
{ "name": "right arm", "parent": "right shoulder", "length": 36.74, "x": 49.95, "y": -0.12, "rotation": 40.12 }, | ||
{ "name": "right hand", "parent": "right arm", "length": 15.32, "x": 36.9, "y": 0.34, "rotation": 2.35 }, | ||
{ "name": "left shoulder", "parent": "torso", "length": 44.19, "x": 78.96, "y": -15.75, "rotation": -156.96 }, | ||
{ "name": "left arm", "parent": "left shoulder", "length": 35.62, "x": 44.19, "y": -0.01, "rotation": 28.16 }, | ||
{ "name": "left hand", "parent": "left arm", "length": 11.52, "x": 35.62, "y": 0.07, "rotation": 2.7 }, | ||
{ "name": "pelvis", "parent": "hip", "x": 1.41, "y": -6.57 } | ||
], | ||
"slots": [ | ||
{ "name": "left shoulder", "bone": "left shoulder", "attachment": "left-shoulder" }, | ||
{ "name": "left arm", "bone": "left arm", "attachment": "left-arm" }, | ||
{ "name": "left hand", "bone": "left hand", "attachment": "left-hand" }, | ||
{ "name": "left foot", "bone": "left foot", "attachment": "left-foot" }, | ||
{ "name": "left lower leg", "bone": "left lower leg", "attachment": "left-lower-leg" }, | ||
{ "name": "left upper leg", "bone": "left upper leg", "attachment": "left-upper-leg" }, | ||
{ "name": "pelvis", "bone": "pelvis", "attachment": "pelvis" }, | ||
{ "name": "right foot", "bone": "right foot", "attachment": "right-foot" }, | ||
{ "name": "right lower leg", "bone": "right lower leg", "attachment": "right-lower-leg" }, | ||
{ "name": "right upper leg", "bone": "right upper leg", "attachment": "right-upper-leg" }, | ||
{ "name": "torso", "bone": "torso", "attachment": "torso" }, | ||
{ "name": "neck", "bone": "neck", "attachment": "neck" }, | ||
{ "name": "head", "bone": "head", "attachment": "head" }, | ||
{ "name": "eyes", "bone": "head", "attachment": "eyes" }, | ||
{ "name": "right shoulder", "bone": "right shoulder", "attachment": "right-shoulder" }, | ||
{ "name": "right arm", "bone": "right arm", "attachment": "right-arm" }, | ||
{ "name": "right hand", "bone": "right hand", "attachment": "right-hand" } | ||
], | ||
"skins": { | ||
"default": { | ||
"left shoulder": { | ||
"left-shoulder": { "x": 23.74, "y": 0.11, "rotation": 62.01, "width": 34, "height": 53 } | ||
}, | ||
"left arm": { | ||
"left-arm": { "x": 15.11, "y": -0.44, "rotation": 33.84, "width": 35, "height": 29 } | ||
}, | ||
"left hand": { | ||
"left-hand": { "x": 0.75, "y": 1.86, "rotation": 31.14, "width": 35, "height": 38 } | ||
}, | ||
"left foot": { | ||
"left-foot": { "x": 24.35, "y": 8.88, "rotation": 3.32, "width": 65, "height": 30 } | ||
}, | ||
"left lower leg": { | ||
"left-lower-leg": { "x": 24.55, "y": -1.92, "rotation": 105.75, "width": 49, "height": 64 } | ||
}, | ||
"left upper leg": { | ||
"left-upper-leg": { "x": 26.12, "y": -1.85, "rotation": 89.09, "width": 33, "height": 67 } | ||
}, | ||
"pelvis": { | ||
"pelvis": { "x": -4.83, "y": 10.62, "width": 63, "height": 47 } | ||
}, | ||
"right foot": { | ||
"right-foot": { "x": 19.02, "y": 8.47, "rotation": 1.52, "width": 67, "height": 30 } | ||
}, | ||
"right lower leg": { | ||
"right-lower-leg": { "x": 23.28, "y": -2.59, "rotation": 111.83, "width": 51, "height": 64 } | ||
}, | ||
"right upper leg": { | ||
"right-upper-leg": { "x": 23.03, "y": 0.25, "rotation": 101.13, "width": 44, "height": 70 } | ||
}, | ||
"torso": { | ||
"torso": { "x": 44.57, "y": -7.08, "rotation": -94.95, "width": 68, "height": 92 } | ||
}, | ||
"neck": { | ||
"neck": { "x": 9.42, "y": -3.66, "rotation": -100.15, "width": 34, "height": 28 } | ||
}, | ||
"head": { | ||
"head": { "x": 53.94, "y": -5.75, "rotation": -86.9, "width": 121, "height": 132 } | ||
}, | ||
"eyes": { | ||
"eyes": { "x": 28.94, "y": -32.92, "rotation": -86.9, "width": 34, "height": 27 }, | ||
"eyes-closed": { "x": 28.77, "y": -32.86, "rotation": -86.9, "width": 34, "height": 27 } | ||
}, | ||
"right shoulder": { | ||
"right-shoulder": { "x": 25.86, "y": 0.03, "rotation": 134.44, "width": 52, "height": 51 } | ||
}, | ||
"right arm": { | ||
"right-arm": { "x": 18.34, "y": -2.64, "rotation": 94.32, "width": 21, "height": 45 } | ||
}, | ||
"right hand": { | ||
"right-hand": { "x": 6.82, "y": 1.25, "rotation": 91.96, "width": 32, "height": 32 } | ||
} | ||
} | ||
}, | ||
"torso": | ||
{ | ||
"frame": {"x":1,"y":28,"w":68,"h":92}, | ||
"rotated": false, | ||
"trimmed": false, | ||
"spriteSourceSize": {"x":0,"y":0,"w":68,"h":92}, | ||
"sourceSize": {"w":68,"h":92} | ||
}, | ||
"left-pant-bottom": | ||
{ | ||
"frame": {"x":1,"y":4,"w":44,"h":22}, | ||
"rotated": false, | ||
"trimmed": false, | ||
"spriteSourceSize": {"x":0,"y":0,"w":44,"h":22}, | ||
"sourceSize": {"w":44,"h":22} | ||
}, | ||
"right-pant-bottom": | ||
{ | ||
"frame": {"x":47,"y":8,"w":46,"h":18}, | ||
"rotated": false, | ||
"trimmed": false, | ||
"spriteSourceSize": {"x":0,"y":0,"w":46,"h":18}, | ||
"sourceSize": {"w":46,"h":18} | ||
}, | ||
"right-upper-leg": | ||
{ | ||
"frame": {"x":71,"y":50,"w":44,"h":70}, | ||
"rotated": false, | ||
"trimmed": false, | ||
"spriteSourceSize": {"x":0,"y":0,"w":44,"h":70}, | ||
"sourceSize": {"w":44,"h":70} | ||
}, | ||
"pelvis": | ||
{ | ||
"frame": {"x":95,"y":1,"w":63,"h":47}, | ||
"rotated": false, | ||
"trimmed": false, | ||
"spriteSourceSize": {"x":0,"y":0,"w":63,"h":47}, | ||
"sourceSize": {"w":63,"h":47} | ||
}, | ||
"left-upper-leg": | ||
{ | ||
"frame": {"x":117,"y":53,"w":33,"h":67}, | ||
"rotated": false, | ||
"trimmed": false, | ||
"spriteSourceSize": {"x":0,"y":0,"w":33,"h":67}, | ||
"sourceSize": {"w":33,"h":67} | ||
}, | ||
"right-foot": | ||
{ | ||
"frame": {"x":160,"y":224,"w":67,"h":30}, | ||
"rotated": false, | ||
"trimmed": false, | ||
"spriteSourceSize": {"x":0,"y":0,"w":67,"h":30}, | ||
"sourceSize": {"w":67,"h":30} | ||
}, | ||
"left-shoulder": | ||
{ | ||
"frame": {"x":124,"y":201,"w":34,"h":53}, | ||
"rotated": false, | ||
"trimmed": false, | ||
"spriteSourceSize": {"x":0,"y":0,"w":34,"h":53}, | ||
"sourceSize": {"w":34,"h":53} | ||
}, | ||
"left-ankle": | ||
{ | ||
"frame": {"x":229,"y":222,"w":25,"h":32}, | ||
"rotated": false, | ||
"trimmed": false, | ||
"spriteSourceSize": {"x":0,"y":0,"w":25,"h":32}, | ||
"sourceSize": {"w":25,"h":32} | ||
}, | ||
"left-foot": | ||
{ | ||
"frame": {"x":160,"y":192,"w":65,"h":30}, | ||
"rotated": false, | ||
"trimmed": false, | ||
"spriteSourceSize": {"x":0,"y":0,"w":65,"h":30}, | ||
"sourceSize": {"w":65,"h":30} | ||
}, | ||
"neck": | ||
{ | ||
"frame": {"x":124,"y":171,"w":34,"h":28}, | ||
"rotated": false, | ||
"trimmed": false, | ||
"spriteSourceSize": {"x":0,"y":0,"w":34,"h":28}, | ||
"sourceSize": {"w":34,"h":28} | ||
}, | ||
"right-arm": | ||
{ | ||
"frame": {"x":124,"y":124,"w":21,"h":45}, | ||
"rotated": false, | ||
"trimmed": false, | ||
"spriteSourceSize": {"x":0,"y":0,"w":21,"h":45}, | ||
"sourceSize": {"w":21,"h":45} | ||
}, | ||
"right-ankle": | ||
{ | ||
"frame": {"x":227,"y":190,"w":25,"h":30}, | ||
"rotated": false, | ||
"trimmed": false, | ||
"spriteSourceSize": {"x":0,"y":0,"w":25,"h":30}, | ||
"sourceSize": {"w":25,"h":30} | ||
}, | ||
"left-hand": | ||
{ | ||
"frame": {"x":147,"y":131,"w":35,"h":38}, | ||
"rotated": false, | ||
"trimmed": false, | ||
"spriteSourceSize": {"x":0,"y":0,"w":35,"h":38}, | ||
"sourceSize": {"w":35,"h":38} | ||
}, | ||
"left-arm": | ||
{ | ||
"frame": {"x":184,"y":161,"w":35,"h":29}, | ||
"rotated": false, | ||
"trimmed": false, | ||
"spriteSourceSize": {"x":0,"y":0,"w":35,"h":29}, | ||
"sourceSize": {"w":35,"h":29} | ||
}, | ||
"eyes-closed": | ||
{ | ||
"frame": {"x":221,"y":161,"w":34,"h":27}, | ||
"rotated": false, | ||
"trimmed": false, | ||
"spriteSourceSize": {"x":0,"y":0,"w":34,"h":27}, | ||
"sourceSize": {"w":34,"h":27} | ||
}, | ||
"right-lower-leg": | ||
{ | ||
"frame": {"x":152,"y":65,"w":51,"h":64}, | ||
"rotated": false, | ||
"trimmed": false, | ||
"spriteSourceSize": {"x":0,"y":0,"w":51,"h":64}, | ||
"sourceSize": {"w":51,"h":64} | ||
}, | ||
"right-foot-idle": | ||
{ | ||
"frame": {"x":184,"y":131,"w":53,"h":28}, | ||
"rotated": false, | ||
"trimmed": false, | ||
"spriteSourceSize": {"x":0,"y":0,"w":53,"h":28}, | ||
"sourceSize": {"w":53,"h":28} | ||
}, | ||
"left-lower-leg": | ||
{ | ||
"frame": {"x":205,"y":65,"w":49,"h":64}, | ||
"rotated": false, | ||
"trimmed": false, | ||
"spriteSourceSize": {"x":0,"y":0,"w":49,"h":64}, | ||
"sourceSize": {"w":49,"h":64} | ||
}, | ||
"right-shoulder": | ||
{ | ||
"frame": {"x":160,"y":12,"w":52,"h":51}, | ||
"rotated": false, | ||
"trimmed": false, | ||
"spriteSourceSize": {"x":0,"y":0,"w":52,"h":51}, | ||
"sourceSize": {"w":52,"h":51} | ||
}, | ||
"eyes": | ||
{ | ||
"frame": {"x":214,"y":36,"w":34,"h":27}, | ||
"rotated": false, | ||
"trimmed": false, | ||
"spriteSourceSize": {"x":0,"y":0,"w":34,"h":27}, | ||
"sourceSize": {"w":34,"h":27} | ||
}, | ||
"right-hand": | ||
{ | ||
"frame": {"x":214,"y":2,"w":32,"h":32}, | ||
"rotated": false, | ||
"trimmed": false, | ||
"spriteSourceSize": {"x":0,"y":0,"w":32,"h":32}, | ||
"sourceSize": {"w":32,"h":32} | ||
}}, | ||
"meta": { | ||
"app": "http://www.texturepacker.com", | ||
"version": "1.0", | ||
"image": "spineboy.png", | ||
"format": "RGBA8888", | ||
"size": {"w":256,"h":256}, | ||
"scale": "1", | ||
"smartupdate": "$TexturePacker:SmartUpdate:93f9a66503bccd3c31cdba2ae4b91285$" | ||
"animations": { | ||
"walk": { | ||
"bones": { | ||
"left upper leg": { | ||
"rotate": [ | ||
{ "time": 0, "angle": -26.55 }, | ||
{ "time": 0.1333, "angle": -8.78 }, | ||
{ "time": 0.2666, "angle": 9.51 }, | ||
{ "time": 0.4, "angle": 30.74 }, | ||
{ "time": 0.5333, "angle": 25.33 }, | ||
{ "time": 0.6666, "angle": 26.11 }, | ||
{ "time": 0.8, "angle": -7.7 }, | ||
{ "time": 0.9333, "angle": -21.19 }, | ||
{ "time": 1.0666, "angle": -26.55 } | ||
], | ||
"translate": [ | ||
{ "time": 0, "x": -3, "y": -2.25 }, | ||
{ "time": 0.4, "x": -2.18, "y": -2.25 }, | ||
{ "time": 1.0666, "x": -3, "y": -2.25 } | ||
] | ||
}, | ||
"right upper leg": { | ||
"rotate": [ | ||
{ "time": 0, "angle": 42.45 }, | ||
{ "time": 0.1333, "angle": 52.1 }, | ||
{ "time": 0.2666, "angle": 5.96 }, | ||
{ "time": 0.5333, "angle": -16.93 }, | ||
{ "time": 0.6666, "angle": 1.89 }, | ||
{ | ||
"time": 0.8, | ||
"angle": 28.06, | ||
"curve": [ 0.462, 0.11, 1, 1 ] | ||
}, | ||
{ | ||
"time": 0.9333, | ||
"angle": 58.68, | ||
"curve": [ 0.5, 0.02, 1, 1 ] | ||
}, | ||
{ "time": 1.0666, "angle": 42.45 } | ||
], | ||
"translate": [ | ||
{ "time": 0, "x": 8.11, "y": -2.36 }, | ||
{ "time": 0.1333, "x": 10.03, "y": -2.56 }, | ||
{ "time": 0.4, "x": 2.76, "y": -2.97 }, | ||
{ "time": 0.5333, "x": 2.76, "y": -2.81 }, | ||
{ "time": 0.9333, "x": 8.67, "y": -2.54 }, | ||
{ "time": 1.0666, "x": 8.11, "y": -2.36 } | ||
] | ||
}, | ||
"left lower leg": { | ||
"rotate": [ | ||
{ "time": 0, "angle": -10.21 }, | ||
{ "time": 0.1333, "angle": -55.64 }, | ||
{ "time": 0.2666, "angle": -68.12 }, | ||
{ "time": 0.5333, "angle": 5.11 }, | ||
{ "time": 0.6666, "angle": -28.29 }, | ||
{ "time": 0.8, "angle": 4.08 }, | ||
{ "time": 0.9333, "angle": 3.53 }, | ||
{ "time": 1.0666, "angle": -10.21 } | ||
] | ||
}, | ||
"left foot": { | ||
"rotate": [ | ||
{ "time": 0, "angle": -3.69 }, | ||
{ "time": 0.1333, "angle": -10.42 }, | ||
{ "time": 0.2666, "angle": -17.14 }, | ||
{ "time": 0.4, "angle": -2.83 }, | ||
{ "time": 0.5333, "angle": -3.87 }, | ||
{ "time": 0.6666, "angle": 2.78 }, | ||
{ "time": 0.8, "angle": 1.68 }, | ||
{ "time": 0.9333, "angle": -8.54 }, | ||
{ "time": 1.0666, "angle": -3.69 } | ||
] | ||
}, | ||
"right shoulder": { | ||
"rotate": [ | ||
{ | ||
"time": 0, | ||
"angle": 20.89, | ||
"curve": [ 0.264, 0, 0.75, 1 ] | ||
}, | ||
{ | ||
"time": 0.1333, | ||
"angle": 3.72, | ||
"curve": [ 0.272, 0, 0.841, 1 ] | ||
}, | ||
{ "time": 0.6666, "angle": -278.28 }, | ||
{ "time": 1.0666, "angle": 20.89 } | ||
], | ||
"translate": [ | ||
{ "time": 0, "x": -7.84, "y": 7.19 }, | ||
{ "time": 0.1333, "x": -6.36, "y": 6.42 }, | ||
{ "time": 0.6666, "x": -11.07, "y": 5.25 }, | ||
{ "time": 1.0666, "x": -7.84, "y": 7.19 } | ||
] | ||
}, | ||
"right arm": { | ||
"rotate": [ | ||
{ | ||
"time": 0, | ||
"angle": -4.02, | ||
"curve": [ 0.267, 0, 0.804, 0.99 ] | ||
}, | ||
{ | ||
"time": 0.1333, | ||
"angle": -13.99, | ||
"curve": [ 0.341, 0, 1, 1 ] | ||
}, | ||
{ | ||
"time": 0.6666, | ||
"angle": 36.54, | ||
"curve": [ 0.307, 0, 0.787, 0.99 ] | ||
}, | ||
{ "time": 1.0666, "angle": -4.02 } | ||
] | ||
}, | ||
"right hand": { | ||
"rotate": [ | ||
{ "time": 0, "angle": 22.92 }, | ||
{ "time": 0.4, "angle": -8.97 }, | ||
{ "time": 0.6666, "angle": 0.51 }, | ||
{ "time": 1.0666, "angle": 22.92 } | ||
] | ||
}, | ||
"left shoulder": { | ||
"rotate": [ | ||
{ "time": 0, "angle": -1.47 }, | ||
{ "time": 0.1333, "angle": 13.6 }, | ||
{ "time": 0.6666, "angle": 280.74 }, | ||
{ "time": 1.0666, "angle": -1.47 } | ||
], | ||
"translate": [ | ||
{ "time": 0, "x": -1.76, "y": 0.56 }, | ||
{ "time": 0.6666, "x": -2.47, "y": 8.14 }, | ||
{ "time": 1.0666, "x": -1.76, "y": 0.56 } | ||
] | ||
}, | ||
"left hand": { | ||
"rotate": [ | ||
{ | ||
"time": 0, | ||
"angle": 11.58, | ||
"curve": [ 0.169, 0.37, 0.632, 1.55 ] | ||
}, | ||
{ | ||
"time": 0.1333, | ||
"angle": 28.13, | ||
"curve": [ 0.692, 0, 0.692, 0.99 ] | ||
}, | ||
{ | ||
"time": 0.6666, | ||
"angle": -27.42, | ||
"curve": [ 0.117, 0.41, 0.738, 1.76 ] | ||
}, | ||
{ "time": 0.8, "angle": -36.32 }, | ||
{ "time": 1.0666, "angle": 11.58 } | ||
] | ||
}, | ||
"left arm": { | ||
"rotate": [ | ||
{ "time": 0, "angle": -8.27 }, | ||
{ "time": 0.1333, "angle": 18.43 }, | ||
{ "time": 0.6666, "angle": 0.88 }, | ||
{ "time": 1.0666, "angle": -8.27 } | ||
] | ||
}, | ||
"torso": { | ||
"rotate": [ | ||
{ "time": 0, "angle": -10.28 }, | ||
{ | ||
"time": 0.1333, | ||
"angle": -15.38, | ||
"curve": [ 0.545, 0, 1, 1 ] | ||
}, | ||
{ | ||
"time": 0.4, | ||
"angle": -9.78, | ||
"curve": [ 0.58, 0.17, 1, 1 ] | ||
}, | ||
{ "time": 0.6666, "angle": -15.75 }, | ||
{ "time": 0.9333, "angle": -7.06 }, | ||
{ "time": 1.0666, "angle": -10.28 } | ||
], | ||
"translate": [ | ||
{ "time": 0, "x": -3.67, "y": 1.68 }, | ||
{ "time": 0.1333, "x": -3.67, "y": 0.68 }, | ||
{ "time": 0.4, "x": -3.67, "y": 1.97 }, | ||
{ "time": 0.6666, "x": -3.67, "y": -0.14 }, | ||
{ "time": 1.0666, "x": -3.67, "y": 1.68 } | ||
] | ||
}, | ||
"right foot": { | ||
"rotate": [ | ||
{ "time": 0, "angle": -5.25 }, | ||
{ "time": 0.2666, "angle": -4.08 }, | ||
{ "time": 0.4, "angle": -6.45 }, | ||
{ "time": 0.5333, "angle": -5.39 }, | ||
{ "time": 0.8, "angle": -11.68 }, | ||
{ "time": 0.9333, "angle": 0.46 }, | ||
{ "time": 1.0666, "angle": -5.25 } | ||
] | ||
}, | ||
"right lower leg": { | ||
"rotate": [ | ||
{ "time": 0, "angle": -3.39 }, | ||
{ "time": 0.1333, "angle": -45.53 }, | ||
{ "time": 0.2666, "angle": -2.59 }, | ||
{ "time": 0.5333, "angle": -19.53 }, | ||
{ "time": 0.6666, "angle": -64.8 }, | ||
{ | ||
"time": 0.8, | ||
"angle": -82.56, | ||
"curve": [ 0.557, 0.18, 1, 1 ] | ||
}, | ||
{ "time": 1.0666, "angle": -3.39 } | ||
] | ||
}, | ||
"hip": { | ||
"rotate": [ | ||
{ "time": 0, "angle": 0, "curve": "stepped" }, | ||
{ "time": 1.0666, "angle": 0 } | ||
], | ||
"translate": [ | ||
{ "time": 0, "x": 0, "y": 0 }, | ||
{ | ||
"time": 0.1333, | ||
"x": 0, | ||
"y": -7.61, | ||
"curve": [ 0.272, 0.86, 1, 1 ] | ||
}, | ||
{ "time": 0.4, "x": 0, "y": 8.7 }, | ||
{ "time": 0.5333, "x": 0, "y": -0.41 }, | ||
{ | ||
"time": 0.6666, | ||
"x": 0, | ||
"y": -7.05, | ||
"curve": [ 0.235, 0.89, 1, 1 ] | ||
}, | ||
{ "time": 0.8, "x": 0, "y": 2.92 }, | ||
{ "time": 0.9333, "x": 0, "y": 6.78 }, | ||
{ "time": 1.0666, "x": 0, "y": 0 } | ||
] | ||
}, | ||
"neck": { | ||
"rotate": [ | ||
{ "time": 0, "angle": 3.6 }, | ||
{ "time": 0.1333, "angle": 17.49 }, | ||
{ "time": 0.2666, "angle": 6.1 }, | ||
{ "time": 0.4, "angle": 3.45 }, | ||
{ "time": 0.5333, "angle": 5.17 }, | ||
{ "time": 0.6666, "angle": 18.36 }, | ||
{ "time": 0.8, "angle": 6.09 }, | ||
{ "time": 0.9333, "angle": 2.28 }, | ||
{ "time": 1.0666, "angle": 3.6 } | ||
] | ||
}, | ||
"head": { | ||
"rotate": [ | ||
{ | ||
"time": 0, | ||
"angle": 3.6, | ||
"curve": [ 0, 0, 0.704, 1.61 ] | ||
}, | ||
{ "time": 0.1666, "angle": -0.2 }, | ||
{ "time": 0.2666, "angle": 6.1 }, | ||
{ "time": 0.4, "angle": 3.45 }, | ||
{ | ||
"time": 0.5333, | ||
"angle": 5.17, | ||
"curve": [ 0, 0, 0.704, 1.61 ] | ||
}, | ||
{ "time": 0.7, "angle": 1.1 }, | ||
{ "time": 0.8, "angle": 6.09 }, | ||
{ "time": 0.9333, "angle": 2.28 }, | ||
{ "time": 1.0666, "angle": 3.6 } | ||
] | ||
} | ||
} | ||
}, | ||
"jump": { | ||
"bones": { | ||
"hip": { | ||
"rotate": [ | ||
{ "time": 0, "angle": 0, "curve": "stepped" }, | ||
{ "time": 0.9333, "angle": 0, "curve": "stepped" }, | ||
{ "time": 1.3666, "angle": 0 } | ||
], | ||
"translate": [ | ||
{ "time": 0, "x": -11.57, "y": -3 }, | ||
{ "time": 0.2333, "x": -16.2, "y": -19.43 }, | ||
{ | ||
"time": 0.3333, | ||
"x": 7.66, | ||
"y": -8.48, | ||
"curve": [ 0.057, 0.06, 0.712, 1 ] | ||
}, | ||
{ "time": 0.3666, "x": 15.38, "y": 5.01 }, | ||
{ "time": 0.4666, "x": -7.84, "y": 57.22 }, | ||
{ | ||
"time": 0.6, | ||
"x": -10.81, | ||
"y": 96.34, | ||
"curve": [ 0.241, 0, 1, 1 ] | ||
}, | ||
{ "time": 0.7333, "x": -7.01, "y": 54.7 }, | ||
{ "time": 0.8, "x": -10.58, "y": 32.2 }, | ||
{ "time": 0.9333, "x": -31.99, "y": 0.45 }, | ||
{ "time": 1.0666, "x": -12.48, "y": -29.47 }, | ||
{ "time": 1.3666, "x": -11.57, "y": -3 } | ||
], | ||
"scale": [ | ||
{ "time": 0, "x": 1, "y": 1, "curve": "stepped" }, | ||
{ "time": 0.9333, "x": 1, "y": 1, "curve": "stepped" }, | ||
{ "time": 1.3666, "x": 1, "y": 1 } | ||
] | ||
}, | ||
"left upper leg": { | ||
"rotate": [ | ||
{ "time": 0, "angle": 17.13 }, | ||
{ "time": 0.2333, "angle": 44.35 }, | ||
{ "time": 0.3333, "angle": 16.46 }, | ||
{ "time": 0.4, "angle": -9.88 }, | ||
{ "time": 0.4666, "angle": -11.42 }, | ||
{ "time": 0.5666, "angle": 23.46 }, | ||
{ "time": 0.7666, "angle": 71.82 }, | ||
{ "time": 0.9333, "angle": 65.53 }, | ||
{ "time": 1.0666, "angle": 51.01 }, | ||
{ "time": 1.3666, "angle": 17.13 } | ||
], | ||
"translate": [ | ||
{ "time": 0, "x": -3, "y": -2.25, "curve": "stepped" }, | ||
{ "time": 0.9333, "x": -3, "y": -2.25, "curve": "stepped" }, | ||
{ "time": 1.3666, "x": -3, "y": -2.25 } | ||
], | ||
"scale": [ | ||
{ "time": 0, "x": 1, "y": 1, "curve": "stepped" }, | ||
{ "time": 0.9333, "x": 1, "y": 1, "curve": "stepped" }, | ||
{ "time": 1.3666, "x": 1, "y": 1 } | ||
] | ||
}, | ||
"left lower leg": { | ||
"rotate": [ | ||
{ "time": 0, "angle": -16.25 }, | ||
{ "time": 0.2333, "angle": -52.21 }, | ||
{ "time": 0.4, "angle": 15.04 }, | ||
{ "time": 0.4666, "angle": -8.95 }, | ||
{ "time": 0.5666, "angle": -39.53 }, | ||
{ "time": 0.7666, "angle": -27.27 }, | ||
{ "time": 0.9333, "angle": -3.52 }, | ||
{ "time": 1.0666, "angle": -61.92 }, | ||
{ "time": 1.3666, "angle": -16.25 } | ||
], | ||
"translate": [ | ||
{ "time": 0, "x": 0, "y": 0, "curve": "stepped" }, | ||
{ "time": 0.9333, "x": 0, "y": 0, "curve": "stepped" }, | ||
{ "time": 1.3666, "x": 0, "y": 0 } | ||
], | ||
"scale": [ | ||
{ "time": 0, "x": 1, "y": 1, "curve": "stepped" }, | ||
{ "time": 0.9333, "x": 1, "y": 1, "curve": "stepped" }, | ||
{ "time": 1.3666, "x": 1, "y": 1 } | ||
] | ||
}, | ||
"left foot": { | ||
"rotate": [ | ||
{ "time": 0, "angle": 0.33 }, | ||
{ "time": 0.2333, "angle": 6.2 }, | ||
{ "time": 0.3333, "angle": 14.73 }, | ||
{ "time": 0.4, "angle": -15.54 }, | ||
{ "time": 0.4333, "angle": -21.2 }, | ||
{ "time": 0.5666, "angle": -7.55 }, | ||
{ "time": 0.7666, "angle": -0.67 }, | ||
{ "time": 0.9333, "angle": -0.58 }, | ||
{ "time": 1.0666, "angle": 14.64 }, | ||
{ "time": 1.3666, "angle": 0.33 } | ||
], | ||
"translate": [ | ||
{ "time": 0, "x": 0, "y": 0, "curve": "stepped" }, | ||
{ "time": 0.9333, "x": 0, "y": 0, "curve": "stepped" }, | ||
{ "time": 1.3666, "x": 0, "y": 0 } | ||
], | ||
"scale": [ | ||
{ "time": 0, "x": 1, "y": 1, "curve": "stepped" }, | ||
{ "time": 0.9333, "x": 1, "y": 1, "curve": "stepped" }, | ||
{ "time": 1.3666, "x": 1, "y": 1 } | ||
] | ||
}, | ||
"right upper leg": { | ||
"rotate": [ | ||
{ "time": 0, "angle": 25.97 }, | ||
{ "time": 0.2333, "angle": 46.43 }, | ||
{ "time": 0.3333, "angle": 22.61 }, | ||
{ "time": 0.4, "angle": 2.13 }, | ||
{ | ||
"time": 0.4666, | ||
"angle": 0.04, | ||
"curve": [ 0, 0, 0.637, 0.98 ] | ||
}, | ||
{ "time": 0.6, "angle": 65.55 }, | ||
{ "time": 0.7666, "angle": 64.93 }, | ||
{ "time": 0.9333, "angle": 41.08 }, | ||
{ "time": 1.0666, "angle": 66.25 }, | ||
{ "time": 1.3666, "angle": 25.97 } | ||
], | ||
"translate": [ | ||
{ "time": 0, "x": 5.74, "y": 0.61 }, | ||
{ "time": 0.2333, "x": 4.79, "y": 1.79 }, | ||
{ "time": 0.3333, "x": 6.05, "y": -4.55 }, | ||
{ "time": 0.9333, "x": 4.79, "y": 1.79, "curve": "stepped" }, | ||
{ "time": 1.0666, "x": 4.79, "y": 1.79 }, | ||
{ "time": 1.3666, "x": 5.74, "y": 0.61 } | ||
], | ||
"scale": [ | ||
{ "time": 0, "x": 1, "y": 1, "curve": "stepped" }, | ||
{ "time": 0.9333, "x": 1, "y": 1, "curve": "stepped" }, | ||
{ "time": 1.3666, "x": 1, "y": 1 } | ||
] | ||
}, | ||
"right lower leg": { | ||
"rotate": [ | ||
{ "time": 0, "angle": -27.46 }, | ||
{ "time": 0.2333, "angle": -64.03 }, | ||
{ "time": 0.4, "angle": -48.36 }, | ||
{ "time": 0.5666, "angle": -76.86 }, | ||
{ "time": 0.7666, "angle": -26.89 }, | ||
{ "time": 0.9, "angle": -18.97 }, | ||
{ "time": 0.9333, "angle": -14.18 }, | ||
{ "time": 1.0666, "angle": -80.45 }, | ||
{ "time": 1.3666, "angle": -27.46 } | ||
], | ||
"translate": [ | ||
{ "time": 0, "x": 0, "y": 0, "curve": "stepped" }, | ||
{ "time": 0.9333, "x": 0, "y": 0, "curve": "stepped" }, | ||
{ "time": 1.3666, "x": 0, "y": 0 } | ||
], | ||
"scale": [ | ||
{ "time": 0, "x": 1, "y": 1, "curve": "stepped" }, | ||
{ "time": 0.9333, "x": 1, "y": 1, "curve": "stepped" }, | ||
{ "time": 1.3666, "x": 1, "y": 1 } | ||
] | ||
}, | ||
"right foot": { | ||
"rotate": [ | ||
{ "time": 0, "angle": 1.08 }, | ||
{ "time": 0.2333, "angle": 16.02 }, | ||
{ "time": 0.3, "angle": 12.94 }, | ||
{ "time": 0.3333, "angle": 15.16 }, | ||
{ "time": 0.4, "angle": -14.7 }, | ||
{ "time": 0.4333, "angle": -12.85 }, | ||
{ "time": 0.4666, "angle": -19.18 }, | ||
{ "time": 0.5666, "angle": -15.82 }, | ||
{ "time": 0.6, "angle": -3.59 }, | ||
{ "time": 0.7666, "angle": -3.56 }, | ||
{ "time": 0.9333, "angle": 1.86 }, | ||
{ "time": 1.0666, "angle": 16.02 }, | ||
{ "time": 1.3666, "angle": 1.08 } | ||
], | ||
"translate": [ | ||
{ "time": 0, "x": 0, "y": 0, "curve": "stepped" }, | ||
{ "time": 0.9333, "x": 0, "y": 0, "curve": "stepped" }, | ||
{ "time": 1.3666, "x": 0, "y": 0 } | ||
], | ||
"scale": [ | ||
{ "time": 0, "x": 1, "y": 1, "curve": "stepped" }, | ||
{ "time": 0.9333, "x": 1, "y": 1, "curve": "stepped" }, | ||
{ "time": 1.3666, "x": 1, "y": 1 } | ||
] | ||
}, | ||
"torso": { | ||
"rotate": [ | ||
{ "time": 0, "angle": -13.35 }, | ||
{ "time": 0.2333, "angle": -48.95 }, | ||
{ "time": 0.4333, "angle": -35.77 }, | ||
{ "time": 0.6, "angle": -4.59 }, | ||
{ "time": 0.7666, "angle": 14.61 }, | ||
{ "time": 0.9333, "angle": 15.74 }, | ||
{ "time": 1.0666, "angle": -32.44 }, | ||
{ "time": 1.3666, "angle": -13.35 } | ||
], | ||
"translate": [ | ||
{ "time": 0, "x": -3.67, "y": 1.68, "curve": "stepped" }, | ||
{ "time": 0.9333, "x": -3.67, "y": 1.68, "curve": "stepped" }, | ||
{ "time": 1.3666, "x": -3.67, "y": 1.68 } | ||
], | ||
"scale": [ | ||
{ "time": 0, "x": 1, "y": 1, "curve": "stepped" }, | ||
{ "time": 0.9333, "x": 1, "y": 1, "curve": "stepped" }, | ||
{ "time": 1.3666, "x": 1, "y": 1 } | ||
] | ||
}, | ||
"neck": { | ||
"rotate": [ | ||
{ "time": 0, "angle": 12.78 }, | ||
{ "time": 0.2333, "angle": 16.46 }, | ||
{ "time": 0.4, "angle": 26.49 }, | ||
{ "time": 0.6, "angle": 15.51 }, | ||
{ "time": 0.7666, "angle": 1.34 }, | ||
{ "time": 0.9333, "angle": 2.35 }, | ||
{ "time": 1.0666, "angle": 6.08 }, | ||
{ "time": 1.3, "angle": 21.23 }, | ||
{ "time": 1.3666, "angle": 12.78 } | ||
], | ||
"translate": [ | ||
{ "time": 0, "x": 0, "y": 0, "curve": "stepped" }, | ||
{ "time": 0.9333, "x": 0, "y": 0, "curve": "stepped" }, | ||
{ "time": 1.3666, "x": 0, "y": 0 } | ||
], | ||
"scale": [ | ||
{ "time": 0, "x": 1, "y": 1, "curve": "stepped" }, | ||
{ "time": 0.9333, "x": 1, "y": 1, "curve": "stepped" }, | ||
{ "time": 1.3666, "x": 1, "y": 1 } | ||
] | ||
}, | ||
"head": { | ||
"rotate": [ | ||
{ "time": 0, "angle": 5.19 }, | ||
{ "time": 0.2333, "angle": 20.27 }, | ||
{ "time": 0.4, "angle": 15.27 }, | ||
{ "time": 0.6, "angle": -24.69 }, | ||
{ "time": 0.7666, "angle": -11.02 }, | ||
{ "time": 0.9333, "angle": -24.38 }, | ||
{ "time": 1.0666, "angle": 11.99 }, | ||
{ "time": 1.3, "angle": 4.86 }, | ||
{ "time": 1.3666, "angle": 5.19 } | ||
], | ||
"translate": [ | ||
{ "time": 0, "x": 0, "y": 0, "curve": "stepped" }, | ||
{ "time": 0.9333, "x": 0, "y": 0, "curve": "stepped" }, | ||
{ "time": 1.3666, "x": 0, "y": 0 } | ||
], | ||
"scale": [ | ||
{ "time": 0, "x": 1, "y": 1, "curve": "stepped" }, | ||
{ "time": 0.9333, "x": 1, "y": 1, "curve": "stepped" }, | ||
{ "time": 1.3666, "x": 1, "y": 1 } | ||
] | ||
}, | ||
"left shoulder": { | ||
"rotate": [ | ||
{ | ||
"time": 0, | ||
"angle": 0.05, | ||
"curve": [ 0, 0, 0.62, 1 ] | ||
}, | ||
{ | ||
"time": 0.2333, | ||
"angle": 279.66, | ||
"curve": [ 0.218, 0.67, 0.66, 0.99 ] | ||
}, | ||
{ | ||
"time": 0.5, | ||
"angle": 62.27, | ||
"curve": [ 0.462, 0, 0.764, 0.58 ] | ||
}, | ||
{ "time": 0.9333, "angle": 28.91 }, | ||
{ "time": 1.0666, "angle": -8.62 }, | ||
{ "time": 1.1666, "angle": -18.43 }, | ||
{ "time": 1.3666, "angle": 0.05 } | ||
], | ||
"translate": [ | ||
{ "time": 0, "x": -1.76, "y": 0.56, "curve": "stepped" }, | ||
{ "time": 0.9333, "x": -1.76, "y": 0.56, "curve": "stepped" }, | ||
{ "time": 1.3666, "x": -1.76, "y": 0.56 } | ||
], | ||
"scale": [ | ||
{ "time": 0, "x": 1, "y": 1, "curve": "stepped" }, | ||
{ "time": 0.9333, "x": 1, "y": 1, "curve": "stepped" }, | ||
{ "time": 1.3666, "x": 1, "y": 1 } | ||
] | ||
}, | ||
"left hand": { | ||
"rotate": [ | ||
{ "time": 0, "angle": 11.58, "curve": "stepped" }, | ||
{ "time": 0.9333, "angle": 11.58, "curve": "stepped" }, | ||
{ "time": 1.3666, "angle": 11.58 } | ||
], | ||
"translate": [ | ||
{ "time": 0, "x": 0, "y": 0, "curve": "stepped" }, | ||
{ "time": 0.9333, "x": 0, "y": 0, "curve": "stepped" }, | ||
{ "time": 1.3666, "x": 0, "y": 0 } | ||
], | ||
"scale": [ | ||
{ "time": 0, "x": 1, "y": 1, "curve": "stepped" }, | ||
{ "time": 0.9333, "x": 1, "y": 1, "curve": "stepped" }, | ||
{ "time": 1.3666, "x": 1, "y": 1 } | ||
] | ||
}, | ||
"left arm": { | ||
"rotate": [ | ||
{ "time": 0, "angle": 0.51 }, | ||
{ "time": 0.4333, "angle": 12.82 }, | ||
{ "time": 0.6, "angle": 47.55 }, | ||
{ "time": 0.9333, "angle": 12.82 }, | ||
{ "time": 1.1666, "angle": -6.5 }, | ||
{ "time": 1.3666, "angle": 0.51 } | ||
], | ||
"translate": [ | ||
{ "time": 0, "x": 0, "y": 0, "curve": "stepped" }, | ||
{ "time": 0.9333, "x": 0, "y": 0, "curve": "stepped" }, | ||
{ "time": 1.3666, "x": 0, "y": 0 } | ||
], | ||
"scale": [ | ||
{ "time": 0, "x": 1, "y": 1, "curve": "stepped" }, | ||
{ "time": 0.9333, "x": 1, "y": 1, "curve": "stepped" }, | ||
{ "time": 1.3666, "x": 1, "y": 1 } | ||
] | ||
}, | ||
"right shoulder": { | ||
"rotate": [ | ||
{ | ||
"time": 0, | ||
"angle": 43.82, | ||
"curve": [ 0, 0, 0.62, 1 ] | ||
}, | ||
{ | ||
"time": 0.2333, | ||
"angle": -8.74, | ||
"curve": [ 0.304, 0.58, 0.709, 0.97 ] | ||
}, | ||
{ | ||
"time": 0.5333, | ||
"angle": -208.02, | ||
"curve": [ 0.462, 0, 0.764, 0.58 ] | ||
}, | ||
{ "time": 0.9333, "angle": -246.72 }, | ||
{ "time": 1.0666, "angle": -307.13 }, | ||
{ "time": 1.1666, "angle": 37.15 }, | ||
{ "time": 1.3666, "angle": 43.82 } | ||
], | ||
"translate": [ | ||
{ "time": 0, "x": -7.84, "y": 7.19, "curve": "stepped" }, | ||
{ "time": 0.9333, "x": -7.84, "y": 7.19, "curve": "stepped" }, | ||
{ "time": 1.3666, "x": -7.84, "y": 7.19 } | ||
], | ||
"scale": [ | ||
{ "time": 0, "x": 1, "y": 1, "curve": "stepped" }, | ||
{ "time": 0.9333, "x": 1, "y": 1, "curve": "stepped" }, | ||
{ "time": 1.3666, "x": 1, "y": 1 } | ||
] | ||
}, | ||
"right arm": { | ||
"rotate": [ | ||
{ "time": 0, "angle": -4.02 }, | ||
{ "time": 0.6, "angle": 17.5 }, | ||
{ "time": 0.9333, "angle": -4.02 }, | ||
{ "time": 1.1666, "angle": -16.72 }, | ||
{ "time": 1.3666, "angle": -4.02 } | ||
], | ||
"translate": [ | ||
{ "time": 0, "x": 0, "y": 0, "curve": "stepped" }, | ||
{ "time": 0.9333, "x": 0, "y": 0, "curve": "stepped" }, | ||
{ "time": 1.3666, "x": 0, "y": 0 } | ||
], | ||
"scale": [ | ||
{ "time": 0, "x": 1, "y": 1, "curve": "stepped" }, | ||
{ "time": 0.9333, "x": 1, "y": 1, "curve": "stepped" }, | ||
{ "time": 1.3666, "x": 1, "y": 1 } | ||
] | ||
}, | ||
"right hand": { | ||
"rotate": [ | ||
{ "time": 0, "angle": 22.92, "curve": "stepped" }, | ||
{ "time": 0.9333, "angle": 22.92, "curve": "stepped" }, | ||
{ "time": 1.3666, "angle": 22.92 } | ||
], | ||
"translate": [ | ||
{ "time": 0, "x": 0, "y": 0, "curve": "stepped" }, | ||
{ "time": 0.9333, "x": 0, "y": 0, "curve": "stepped" }, | ||
{ "time": 1.3666, "x": 0, "y": 0 } | ||
], | ||
"scale": [ | ||
{ "time": 0, "x": 1, "y": 1, "curve": "stepped" }, | ||
{ "time": 0.9333, "x": 1, "y": 1, "curve": "stepped" }, | ||
{ "time": 1.3666, "x": 1, "y": 1 } | ||
] | ||
}, | ||
"root": { | ||
"rotate": [ | ||
{ "time": 0, "angle": 0 }, | ||
{ "time": 0.4333, "angle": -14.52 }, | ||
{ "time": 0.8, "angle": 9.86 }, | ||
{ "time": 1.3666, "angle": 0 } | ||
], | ||
"scale": [ | ||
{ "time": 0, "x": 1, "y": 1, "curve": "stepped" }, | ||
{ "time": 1.3666, "x": 1, "y": 1 } | ||
] | ||
} | ||
} | ||
} | ||
} | ||
} |
@@ -63,2 +63,3 @@ module.exports = function(grunt) { | ||
'<%= dirs.src %>/extras/Spine.js', | ||
'<%= dirs.src %>/extras/PIXISpine.js', | ||
'<%= dirs.src %>/textures/BaseTexture.js', | ||
@@ -65,0 +66,0 @@ '<%= dirs.src %>/textures/Texture.js', |
{ | ||
"name": "pixi.js", | ||
"version": "2.1.1", | ||
"version": "2.2.0", | ||
"description": "Pixi.js is a fast lightweight 2D library that works across all devices.", | ||
@@ -5,0 +5,0 @@ |
@@ -386,3 +386,3 @@ /** | ||
* @property filters | ||
* @type Array An array of filters | ||
* @type Array(Filter) | ||
*/ | ||
@@ -463,3 +463,2 @@ Object.defineProperty(PIXI.DisplayObject.prototype, 'filters', { | ||
// TODO create a const for 2_PI | ||
// so if rotation is between 0 then we can simplify the multiplication process.. | ||
@@ -567,3 +566,3 @@ if(this.rotation % PIXI.PI_2) | ||
* @param resolution {Number} The resolution of the texture being generated | ||
* @param scaleMode {Number} Should be one of the PIXI.scaleMode consts | ||
* @param scaleMode {Number} See {{#crossLink "PIXI/scaleModes:property"}}PIXI.scaleModes{{/crossLink}} for possible values | ||
* @param renderer {CanvasRenderer|WebGLRenderer} The renderer used to generate the texture. | ||
@@ -605,3 +604,4 @@ * @return {Texture} a texture of the graphics object | ||
{ | ||
this.updateTransform(); | ||
// don't need to u[date the lot | ||
this.displayObjectUpdateTransform(); | ||
return this.worldTransform.apply(position); | ||
@@ -620,2 +620,3 @@ }; | ||
{ | ||
// | ||
if (from) | ||
@@ -626,4 +627,4 @@ { | ||
this.updateTransform(); | ||
// don't need to u[date the lot | ||
this.displayObjectUpdateTransform(); | ||
return this.worldTransform.applyInverse(position); | ||
@@ -685,3 +686,3 @@ }; | ||
this._cachedSprite.texture.render(this, PIXI.DisplayObject._tempMatrix ); | ||
this._cachedSprite.texture.render(this, PIXI.DisplayObject._tempMatrix, true); | ||
@@ -688,0 +689,0 @@ this._cachedSprite.anchor.x = -( bounds.x / bounds.width ); |
@@ -21,3 +21,3 @@ /** | ||
* @property children | ||
* @type Array<DisplayObject> | ||
* @type Array(DisplayObject) | ||
* @readOnly | ||
@@ -24,0 +24,0 @@ */ |
@@ -11,3 +11,3 @@ /** | ||
* @constructor | ||
* @param textures {Array<Texture>} an array of {Texture} objects that make up the animation | ||
* @param textures {Array(Texture)} an array of {Texture} objects that make up the animation | ||
*/ | ||
@@ -22,3 +22,3 @@ PIXI.MovieClip = function(textures) | ||
* @property textures | ||
* @type Array | ||
* @type Array(Texture) | ||
*/ | ||
@@ -147,3 +147,3 @@ this.textures = textures; | ||
{ | ||
PIXI.Sprite.prototype.updateTransform.call(this); | ||
this.displayObjectContainerUpdateTransform(); | ||
@@ -150,0 +150,0 @@ if(!this.playing)return; |
@@ -39,4 +39,4 @@ /** | ||
*/ | ||
this.texture = texture; | ||
this.texture = texture || PIXI.Texture.emptyTexture; | ||
/** | ||
@@ -82,3 +82,3 @@ * The width of the sprite (this is initially set by the texture) | ||
* @property shader | ||
* @type PIXI.AbstractFilter | ||
* @type AbstractFilter | ||
* @default null | ||
@@ -88,3 +88,3 @@ */ | ||
if(texture.baseTexture.hasLoaded) | ||
if(this.texture.baseTexture.hasLoaded) | ||
{ | ||
@@ -193,14 +193,2 @@ this.onTextureUpdate(); | ||
var x1 = a * w1 + c * h1 + tx; | ||
var y1 = d * h1 + b * w1 + ty; | ||
var x2 = a * w0 + c * h1 + tx; | ||
var y2 = d * h1 + b * w0 + ty; | ||
var x3 = a * w0 + c * h0 + tx; | ||
var y3 = d * h0 + b * w0 + ty; | ||
var x4 = a * w1 + c * h0 + tx; | ||
var y4 = d * h0 + b * w1 + ty; | ||
var maxX = -Infinity; | ||
@@ -212,22 +200,50 @@ var maxY = -Infinity; | ||
minX = x1 < minX ? x1 : minX; | ||
minX = x2 < minX ? x2 : minX; | ||
minX = x3 < minX ? x3 : minX; | ||
minX = x4 < minX ? x4 : minX; | ||
if(b === 0 && c === 0) | ||
{ | ||
// scale may be negative! | ||
if(a < 0)a *= -1; | ||
if(d < 0)d *= -1; | ||
minY = y1 < minY ? y1 : minY; | ||
minY = y2 < minY ? y2 : minY; | ||
minY = y3 < minY ? y3 : minY; | ||
minY = y4 < minY ? y4 : minY; | ||
// this means there is no rotation going on right? RIGHT? | ||
// if thats the case then we can avoid checking the bound values! yay | ||
minX = a * w1 + tx; | ||
maxX = a * w0 + tx; | ||
minY = d * h1 + ty; | ||
maxY = d * h0 + ty; | ||
} | ||
else | ||
{ | ||
var x1 = a * w1 + c * h1 + tx; | ||
var y1 = d * h1 + b * w1 + ty; | ||
maxX = x1 > maxX ? x1 : maxX; | ||
maxX = x2 > maxX ? x2 : maxX; | ||
maxX = x3 > maxX ? x3 : maxX; | ||
maxX = x4 > maxX ? x4 : maxX; | ||
var x2 = a * w0 + c * h1 + tx; | ||
var y2 = d * h1 + b * w0 + ty; | ||
maxY = y1 > maxY ? y1 : maxY; | ||
maxY = y2 > maxY ? y2 : maxY; | ||
maxY = y3 > maxY ? y3 : maxY; | ||
maxY = y4 > maxY ? y4 : maxY; | ||
var x3 = a * w0 + c * h0 + tx; | ||
var y3 = d * h0 + b * w0 + ty; | ||
var x4 = a * w1 + c * h0 + tx; | ||
var y4 = d * h0 + b * w1 + ty; | ||
minX = x1 < minX ? x1 : minX; | ||
minX = x2 < minX ? x2 : minX; | ||
minX = x3 < minX ? x3 : minX; | ||
minX = x4 < minX ? x4 : minX; | ||
minY = y1 < minY ? y1 : minY; | ||
minY = y2 < minY ? y2 : minY; | ||
minY = y3 < minY ? y3 : minY; | ||
minY = y4 < minY ? y4 : minY; | ||
maxX = x1 > maxX ? x1 : maxX; | ||
maxX = x2 > maxX ? x2 : maxX; | ||
maxX = x3 > maxX ? x3 : maxX; | ||
maxX = x4 > maxX ? x4 : maxX; | ||
maxY = y1 > maxY ? y1 : maxY; | ||
maxY = y2 > maxY ? y2 : maxY; | ||
maxY = y3 > maxY ? y3 : maxY; | ||
maxY = y4 > maxY ? y4 : maxY; | ||
} | ||
var bounds = this._bounds; | ||
@@ -340,2 +356,13 @@ | ||
// If smoothingEnabled is supported and we need to change the smoothing property for this texture | ||
if (renderSession.smoothProperty && renderSession.scaleMode !== this.texture.baseTexture.scaleMode) | ||
{ | ||
renderSession.scaleMode = this.texture.baseTexture.scaleMode; | ||
renderSession.context[renderSession.smoothProperty] = (renderSession.scaleMode === PIXI.scaleModes.LINEAR); | ||
} | ||
// If the texture is trimmed we offset by the trim x/y, otherwise we use the frame dimensions | ||
var dx = (this.texture.trim) ? this.texture.trim.x - this.anchor.x * this.texture.trim.width : this.anchor.x * -this.texture.frame.width; | ||
var dy = (this.texture.trim) ? this.texture.trim.y - this.anchor.y * this.texture.trim.height : this.anchor.y * -this.texture.frame.height; | ||
// Allow for pixel rounding | ||
@@ -349,4 +376,7 @@ if (renderSession.roundPixels) | ||
this.worldTransform.d, | ||
(this.worldTransform.tx* renderSession.resolution) | 0, | ||
(this.worldTransform.ty* renderSession.resolution) | 0); | ||
(this.worldTransform.tx * renderSession.resolution) | 0, | ||
(this.worldTransform.ty * renderSession.resolution) | 0); | ||
dx = dx | 0; | ||
dy = dy | 0; | ||
} | ||
@@ -364,13 +394,5 @@ else | ||
// If smoothingEnabled is supported and we need to change the smoothing property for this texture | ||
if (renderSession.smoothProperty && renderSession.scaleMode !== this.texture.baseTexture.scaleMode) | ||
{ | ||
renderSession.scaleMode = this.texture.baseTexture.scaleMode; | ||
renderSession.context[renderSession.smoothProperty] = (renderSession.scaleMode === PIXI.scaleModes.LINEAR); | ||
} | ||
// If the texture is trimmed we offset by the trim x/y, otherwise we use the frame dimensions | ||
var dx = (this.texture.trim) ? this.texture.trim.x - this.anchor.x * this.texture.trim.width : this.anchor.x * -this.texture.frame.width; | ||
var dy = (this.texture.trim) ? this.texture.trim.y - this.anchor.y * this.texture.trim.height : this.anchor.y * -this.texture.frame.height; | ||
if (this.tint !== 0xFFFFFF) | ||
@@ -377,0 +399,0 @@ { |
@@ -62,3 +62,3 @@ /** | ||
// TODO don't need to! | ||
PIXI.DisplayObject.prototype.updateTransform.call( this ); | ||
this.displayObjectUpdateTransform(); | ||
// PIXI.DisplayObjectContainer.prototype.updateTransform.call( this ); | ||
@@ -105,3 +105,3 @@ }; | ||
PIXI.DisplayObject.prototype.updateTransform.call(this); | ||
this.displayObjectUpdateTransform(); | ||
@@ -147,3 +147,3 @@ var transform = this.worldTransform; | ||
PIXI.DisplayObject.prototype.updateTransform.call(child); | ||
child.displayObjectUpdateTransform(); | ||
@@ -150,0 +150,0 @@ var childTransform = child.worldTransform; |
@@ -20,3 +20,3 @@ /** | ||
this.verticies = new PIXI.Float32Array(points.length * 4); | ||
this.vertices = new PIXI.Float32Array(points.length * 4); | ||
this.uvs = new PIXI.Float32Array(points.length * 4); | ||
@@ -121,3 +121,3 @@ this.colors = new PIXI.Float32Array(points.length * 2); | ||
var verticies = this.verticies; | ||
var vertices = this.vertices; | ||
var total = points.length, | ||
@@ -155,6 +155,6 @@ point, index, ratio, perpLength, num; | ||
verticies[index] = point.x + perp.x; | ||
verticies[index+1] = point.y + perp.y; | ||
verticies[index+2] = point.x - perp.x; | ||
verticies[index+3] = point.y - perp.y; | ||
vertices[index] = point.x + perp.x; | ||
vertices[index+1] = point.y + perp.y; | ||
vertices[index+2] = point.x - perp.x; | ||
vertices[index+3] = point.y - perp.y; | ||
@@ -161,0 +161,0 @@ lastPoint = point; |
@@ -6,3 +6,3 @@ /** | ||
/** | ||
* | ||
* | ||
* @class Strip | ||
@@ -12,5 +12,5 @@ * @extends DisplayObjectContainer | ||
* @param texture {Texture} The texture to use | ||
* @param width {Number} the width | ||
* @param width {Number} the width | ||
* @param height {Number} the height | ||
* | ||
* | ||
*/ | ||
@@ -20,4 +20,4 @@ PIXI.Strip = function(texture) | ||
PIXI.DisplayObjectContainer.call( this ); | ||
/** | ||
@@ -37,3 +37,3 @@ * The texture of the strip | ||
this.verticies = new PIXI.Float32Array([0, 0, | ||
this.vertices = new PIXI.Float32Array([0, 0, | ||
100, 0, | ||
@@ -46,3 +46,3 @@ 100, 100, | ||
this.indices = new PIXI.Uint16Array([0, 1, 2, 3]); | ||
/** | ||
@@ -64,12 +64,13 @@ * Whether the strip is dirty or not | ||
this.blendMode = PIXI.blendModes.NORMAL; | ||
/** | ||
* if you need a padding, not yet implemented | ||
* Triangles in canvas mode are automatically antialiased, use this value to force triangles to overlap a bit with each other. | ||
* | ||
* @property padding | ||
* @property canvasPadding | ||
* @type Number | ||
*/ | ||
this.padding = 0; | ||
// NYI, TODO padding ? | ||
this.canvasPadding = 0; | ||
this.drawMode = PIXI.Strip.DrawModes.TRIANGLE_STRIP; | ||
}; | ||
@@ -91,3 +92,3 @@ | ||
if(!this._vertexBuffer)this._initWebGL(renderSession); | ||
renderSession.shaderManager.setShader(renderSession.shaderManager.stripShader); | ||
@@ -101,3 +102,3 @@ | ||
//TODO check culling | ||
//TODO check culling | ||
}; | ||
@@ -109,3 +110,3 @@ | ||
var gl = renderSession.gl; | ||
this._vertexBuffer = gl.createBuffer(); | ||
@@ -115,5 +116,5 @@ this._indexBuffer = gl.createBuffer(); | ||
this._colorBuffer = gl.createBuffer(); | ||
gl.bindBuffer(gl.ARRAY_BUFFER, this._vertexBuffer); | ||
gl.bufferData(gl.ARRAY_BUFFER, this.verticies, gl.DYNAMIC_DRAW); | ||
gl.bufferData(gl.ARRAY_BUFFER, this.vertices, gl.DYNAMIC_DRAW); | ||
@@ -125,3 +126,3 @@ gl.bindBuffer(gl.ARRAY_BUFFER, this._uvBuffer); | ||
gl.bufferData(gl.ARRAY_BUFFER, this.colors, gl.STATIC_DRAW); | ||
gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, this._indexBuffer); | ||
@@ -138,2 +139,3 @@ gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, this.indices, gl.STATIC_DRAW); | ||
var drawMode = this.drawMode === PIXI.Strip.DrawModes.TRIANGLE_STRIP ? gl.TRIANGLE_STRIP : gl.TRIANGLES; | ||
@@ -143,4 +145,4 @@ // gl.uniformMatrix4fv(shaderProgram.mvMatrixUniform, false, mat4Real); | ||
renderSession.blendModeManager.setBlendMode(this.blendMode); | ||
// set uniforms | ||
@@ -154,11 +156,11 @@ gl.uniformMatrix3fv(shader.translationMatrix, false, this.worldTransform.toArray(true)); | ||
{ | ||
gl.bindBuffer(gl.ARRAY_BUFFER, this._vertexBuffer); | ||
gl.bufferSubData(gl.ARRAY_BUFFER, 0, this.verticies); | ||
gl.bufferSubData(gl.ARRAY_BUFFER, 0, this.vertices); | ||
gl.vertexAttribPointer(shader.aVertexPosition, 2, gl.FLOAT, false, 0, 0); | ||
// update the uvs | ||
gl.bindBuffer(gl.ARRAY_BUFFER, this._uvBuffer); | ||
gl.vertexAttribPointer(shader.aTextureCoord, 2, gl.FLOAT, false, 0, 0); | ||
gl.activeTexture(gl.TEXTURE0); | ||
@@ -176,7 +178,7 @@ | ||
} | ||
// dont need to upload! | ||
gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, this._indexBuffer); | ||
} | ||
@@ -188,5 +190,5 @@ else | ||
gl.bindBuffer(gl.ARRAY_BUFFER, this._vertexBuffer); | ||
gl.bufferData(gl.ARRAY_BUFFER, this.verticies, gl.STATIC_DRAW); | ||
gl.bufferData(gl.ARRAY_BUFFER, this.vertices, gl.STATIC_DRAW); | ||
gl.vertexAttribPointer(shader.aVertexPosition, 2, gl.FLOAT, false, 0, 0); | ||
// update the uvs | ||
@@ -196,3 +198,3 @@ gl.bindBuffer(gl.ARRAY_BUFFER, this._uvBuffer); | ||
gl.vertexAttribPointer(shader.aTextureCoord, 2, gl.FLOAT, false, 0, 0); | ||
gl.activeTexture(gl.TEXTURE0); | ||
@@ -209,7 +211,7 @@ | ||
} | ||
// dont need to upload! | ||
gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, this._indexBuffer); | ||
gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, this.indices, gl.STATIC_DRAW); | ||
} | ||
@@ -219,5 +221,5 @@ //console.log(gl.TRIANGLE_STRIP) | ||
// | ||
gl.drawElements(gl.TRIANGLE_STRIP, this.indices.length, gl.UNSIGNED_SHORT, 0); | ||
gl.drawElements(drawMode, this.indices.length, gl.UNSIGNED_SHORT, 0); | ||
}; | ||
@@ -230,3 +232,3 @@ | ||
var context = renderSession.context; | ||
var transform = this.worldTransform; | ||
@@ -242,82 +244,119 @@ | ||
} | ||
var strip = this; | ||
if (this.drawMode === PIXI.Strip.DrawModes.TRIANGLE_STRIP) | ||
{ | ||
this._renderCanvasTriangleStrip(context); | ||
} | ||
else | ||
{ | ||
this._renderCanvasTriangles(context); | ||
} | ||
}; | ||
PIXI.Strip.prototype._renderCanvasTriangleStrip = function(context) | ||
{ | ||
// draw triangles!! | ||
var verticies = strip.verticies; | ||
var uvs = strip.uvs; | ||
var vertices = this.vertices; | ||
var uvs = this.uvs; | ||
var length = verticies.length/2; | ||
var length = vertices.length / 2; | ||
this.count++; | ||
for (var i = 0; i < length-2; i++) | ||
{ | ||
for (var i = 0; i < length - 2; i++) { | ||
// draw some triangles! | ||
var index = i*2; | ||
var index = i * 2; | ||
this._renderCanvasDrawTriangle(context, vertices, uvs, index, (index + 2), (index + 4)); | ||
} | ||
}; | ||
var x0 = verticies[index], x1 = verticies[index+2], x2 = verticies[index+4]; | ||
var y0 = verticies[index+1], y1 = verticies[index+3], y2 = verticies[index+5]; | ||
PIXI.Strip.prototype._renderCanvasTriangles = function(context) | ||
{ | ||
// draw triangles!! | ||
var vertices = this.vertices; | ||
var uvs = this.uvs; | ||
var indices = this.indices; | ||
if(this.padding > 0) | ||
{ | ||
var centerX = (x0 + x1 + x2)/3; | ||
var centerY = (y0 + y1 + y2)/3; | ||
var length = indices.length; | ||
this.count++; | ||
var normX = x0 - centerX; | ||
var normY = y0 - centerY; | ||
for (var i = 0; i < length; i += 3) { | ||
// draw some triangles! | ||
var index0 = indices[i] * 2, index1 = indices[i + 1] * 2, index2 = indices[i + 2] * 2; | ||
this._renderCanvasDrawTriangle(context, vertices, uvs, index0, index1, index2); | ||
} | ||
}; | ||
var dist = Math.sqrt( normX * normX + normY * normY ); | ||
x0 = centerX + (normX / dist) * (dist + 3); | ||
y0 = centerY + (normY / dist) * (dist + 3); | ||
PIXI.Strip.prototype._renderCanvasDrawTriangle = function(context, vertices, uvs, index0, index1, index2) | ||
{ | ||
var textureSource = this.texture.baseTexture.source; | ||
var textureWidth = this.texture.width; | ||
var textureHeight = this.texture.height; | ||
// | ||
normX = x1 - centerX; | ||
normY = y1 - centerY; | ||
var x0 = vertices[index0], x1 = vertices[index1], x2 = vertices[index2]; | ||
var y0 = vertices[index0 + 1], y1 = vertices[index1 + 1], y2 = vertices[index2 + 1]; | ||
dist = Math.sqrt( normX * normX + normY * normY ); | ||
x1 = centerX + (normX / dist) * (dist + 3); | ||
y1 = centerY + (normY / dist) * (dist + 3); | ||
var u0 = uvs[index0] * textureWidth, u1 = uvs[index1] * textureWidth, u2 = uvs[index2] * textureWidth; | ||
var v0 = uvs[index0 + 1] * textureHeight, v1 = uvs[index1 + 1] * textureHeight, v2 = uvs[index2 + 1] * textureHeight; | ||
normX = x2 - centerX; | ||
normY = y2 - centerY; | ||
if (this.canvasPadding > 0) { | ||
var paddingX = this.canvasPadding / this.worldTransform.a; | ||
var paddingY = this.canvasPadding / this.worldTransform.d; | ||
var centerX = (x0 + x1 + x2) / 3; | ||
var centerY = (y0 + y1 + y2) / 3; | ||
dist = Math.sqrt( normX * normX + normY * normY ); | ||
x2 = centerX + (normX / dist) * (dist + 3); | ||
y2 = centerY + (normY / dist) * (dist + 3); | ||
} | ||
var normX = x0 - centerX; | ||
var normY = y0 - centerY; | ||
var u0 = uvs[index] * strip.texture.width, u1 = uvs[index+2] * strip.texture.width, u2 = uvs[index+4]* strip.texture.width; | ||
var v0 = uvs[index+1]* strip.texture.height, v1 = uvs[index+3] * strip.texture.height, v2 = uvs[index+5]* strip.texture.height; | ||
var dist = Math.sqrt(normX * normX + normY * normY); | ||
x0 = centerX + (normX / dist) * (dist + paddingX); | ||
y0 = centerY + (normY / dist) * (dist + paddingY); | ||
context.save(); | ||
context.beginPath(); | ||
// | ||
normX = x1 - centerX; | ||
normY = y1 - centerY; | ||
context.moveTo(x0, y0); | ||
context.lineTo(x1, y1); | ||
context.lineTo(x2, y2); | ||
dist = Math.sqrt(normX * normX + normY * normY); | ||
x1 = centerX + (normX / dist) * (dist + paddingX); | ||
y1 = centerY + (normY / dist) * (dist + paddingY); | ||
context.closePath(); | ||
normX = x2 - centerX; | ||
normY = y2 - centerY; | ||
context.clip(); | ||
dist = Math.sqrt(normX * normX + normY * normY); | ||
x2 = centerX + (normX / dist) * (dist + paddingX); | ||
y2 = centerY + (normY / dist) * (dist + paddingY); | ||
} | ||
// Compute matrix transform | ||
var delta = u0*v1 + v0*u2 + u1*v2 - v1*u2 - v0*u1 - u0*v2; | ||
var deltaA = x0*v1 + v0*x2 + x1*v2 - v1*x2 - v0*x1 - x0*v2; | ||
var deltaB = u0*x1 + x0*u2 + u1*x2 - x1*u2 - x0*u1 - u0*x2; | ||
var deltaC = u0*v1*x2 + v0*x1*u2 + x0*u1*v2 - x0*v1*u2 - v0*u1*x2 - u0*x1*v2; | ||
var deltaD = y0*v1 + v0*y2 + y1*v2 - v1*y2 - v0*y1 - y0*v2; | ||
var deltaE = u0*y1 + y0*u2 + u1*y2 - y1*u2 - y0*u1 - u0*y2; | ||
var deltaF = u0*v1*y2 + v0*y1*u2 + y0*u1*v2 - y0*v1*u2 - v0*u1*y2 - u0*y1*v2; | ||
context.save(); | ||
context.beginPath(); | ||
context.transform(deltaA / delta, deltaD / delta, | ||
deltaB / delta, deltaE / delta, | ||
deltaC / delta, deltaF / delta); | ||
context.drawImage(strip.texture.baseTexture.source, 0, 0); | ||
context.restore(); | ||
} | ||
context.moveTo(x0, y0); | ||
context.lineTo(x1, y1); | ||
context.lineTo(x2, y2); | ||
context.closePath(); | ||
context.clip(); | ||
// Compute matrix transform | ||
var delta = (u0 * v1) + (v0 * u2) + (u1 * v2) - (v1 * u2) - (v0 * u1) - (u0 * v2); | ||
var deltaA = (x0 * v1) + (v0 * x2) + (x1 * v2) - (v1 * x2) - (v0 * x1) - (x0 * v2); | ||
var deltaB = (u0 * x1) + (x0 * u2) + (u1 * x2) - (x1 * u2) - (x0 * u1) - (u0 * x2); | ||
var deltaC = (u0 * v1 * x2) + (v0 * x1 * u2) + (x0 * u1 * v2) - (x0 * v1 * u2) - (v0 * u1 * x2) - (u0 * x1 * v2); | ||
var deltaD = (y0 * v1) + (v0 * y2) + (y1 * v2) - (v1 * y2) - (v0 * y1) - (y0 * v2); | ||
var deltaE = (u0 * y1) + (y0 * u2) + (u1 * y2) - (y1 * u2) - (y0 * u1) - (u0 * y2); | ||
var deltaF = (u0 * v1 * y2) + (v0 * y1 * u2) + (y0 * u1 * v2) - (y0 * v1 * u2) - (v0 * u1 * y2) - (u0 * y1 * v2); | ||
context.transform(deltaA / delta, deltaD / delta, | ||
deltaB / delta, deltaE / delta, | ||
deltaC / delta, deltaF / delta); | ||
context.drawImage(textureSource, 0, 0); | ||
context.restore(); | ||
}; | ||
/** | ||
@@ -333,5 +372,5 @@ * Renders a flat strip | ||
var context = this.context; | ||
var verticies = strip.verticies; | ||
var vertices = strip.vertices; | ||
var length = verticies.length/2; | ||
var length = vertices.length/2; | ||
this.count++; | ||
@@ -345,4 +384,4 @@ | ||
var x0 = verticies[index], x1 = verticies[index+2], x2 = verticies[index+4]; | ||
var y0 = verticies[index+1], y1 = verticies[index+3], y2 = verticies[index+5]; | ||
var x0 = vertices[index], x1 = vertices[index+2], x2 = vertices[index+4]; | ||
var y0 = vertices[index+1], y1 = vertices[index+3], y2 = vertices[index+5]; | ||
@@ -354,3 +393,3 @@ context.moveTo(x0, y0); | ||
context.fillStyle = "#FF0000"; | ||
context.fillStyle = '#FF0000'; | ||
context.fill(); | ||
@@ -385,2 +424,71 @@ context.closePath(); | ||
this.updateFrame = true; | ||
}; | ||
}; | ||
/** | ||
* Returns the bounds of the mesh as a rectangle. The bounds calculation takes the worldTransform into account. | ||
* | ||
* @method getBounds | ||
* @param matrix {Matrix} the transformation matrix of the sprite | ||
* @return {Rectangle} the framing rectangle | ||
*/ | ||
PIXI.Strip.prototype.getBounds = function(matrix) | ||
{ | ||
var worldTransform = matrix || this.worldTransform; | ||
var a = worldTransform.a; | ||
var b = worldTransform.b; | ||
var c = worldTransform.c; | ||
var d = worldTransform.d; | ||
var tx = worldTransform.tx; | ||
var ty = worldTransform.ty; | ||
var maxX = -Infinity; | ||
var maxY = -Infinity; | ||
var minX = Infinity; | ||
var minY = Infinity; | ||
var vertices = this.vertices; | ||
for (var i = 0, n = vertices.length; i < n; i += 2) | ||
{ | ||
var rawX = vertices[i], rawY = vertices[i + 1]; | ||
var x = (a * rawX) + (c * rawY) + tx; | ||
var y = (d * rawY) + (b * rawX) + ty; | ||
minX = x < minX ? x : minX; | ||
minY = y < minY ? y : minY; | ||
maxX = x > maxX ? x : maxX; | ||
maxY = y > maxY ? y : maxY; | ||
} | ||
if (minX === -Infinity || maxY === Infinity) | ||
{ | ||
return PIXI.EmptyRectangle; | ||
} | ||
var bounds = this._bounds; | ||
bounds.x = minX; | ||
bounds.width = maxX - minX; | ||
bounds.y = minY; | ||
bounds.height = maxY - minY; | ||
// store a reference so that if this function gets called again in the render cycle we do not have to recalculate | ||
this._currentBounds = bounds; | ||
return bounds; | ||
}; | ||
/** | ||
* Different drawing buffer modes supported | ||
* | ||
* @property | ||
* @type {{TRIANGLE_STRIP: number, TRIANGLES: number}} | ||
* @static | ||
*/ | ||
PIXI.Strip.DrawModes = { | ||
TRIANGLE_STRIP: 0, | ||
TRIANGLES: 1 | ||
}; |
@@ -221,4 +221,4 @@ /** | ||
context.setTransform(transform.a * resolution, | ||
transform.b * resolution, | ||
transform.c * resolution, | ||
transform.b * resolution, | ||
transform.d * resolution, | ||
@@ -408,3 +408,4 @@ transform.tx * resolution, | ||
if (frame.width !== targetWidth || frame.height !== targetHeight) newTextureRequired = true; | ||
// If the BaseTexture dimensions don't match the texture frame then we need a new texture anyway because it's part of a texture atlas | ||
if (frame.width !== targetWidth || frame.height !== targetHeight || texture.baseTexture.width !== targetWidth || texture.baseTexture.height || targetHeight) newTextureRequired = true; | ||
} | ||
@@ -411,0 +412,0 @@ |
@@ -19,3 +19,3 @@ /** | ||
* @property passes | ||
* @type Array an array of filter objects | ||
* @type Array(Filter) | ||
* @private | ||
@@ -27,3 +27,3 @@ */ | ||
* @property shaders | ||
* @type Array an array of shaders | ||
* @type Array(Shader) | ||
* @private | ||
@@ -30,0 +30,0 @@ */ |
@@ -28,3 +28,3 @@ /** | ||
* @property blur | ||
* @type Number the strength of the blur | ||
* @type Number | ||
* @default 2 | ||
@@ -45,3 +45,3 @@ */ | ||
* @property blurX | ||
* @type Number the strength of the blurX | ||
* @type Number | ||
* @default 2 | ||
@@ -62,3 +62,3 @@ */ | ||
* @property blurY | ||
* @type Number the strength of the blurY | ||
* @type Number | ||
* @default 2 | ||
@@ -65,0 +65,0 @@ */ |
@@ -55,3 +55,3 @@ /** | ||
* @property blur | ||
* @type Number the strength of the blur | ||
* @type Number | ||
* @default 2 | ||
@@ -58,0 +58,0 @@ */ |
@@ -55,3 +55,3 @@ /** | ||
* @property blur | ||
* @type Number the strength of the blur | ||
* @type Number | ||
* @default 2 | ||
@@ -58,0 +58,0 @@ */ |
@@ -50,3 +50,3 @@ /** | ||
* @property matrix | ||
* @type Array and array of 26 numbers | ||
* @type Array(Number) | ||
* @default [1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1] | ||
@@ -53,0 +53,0 @@ */ |
@@ -69,3 +69,3 @@ /** | ||
* @property blur | ||
* @type Number the strength of the blur | ||
* @type Number | ||
* @default 2 | ||
@@ -72,0 +72,0 @@ */ |
@@ -65,3 +65,3 @@ /** | ||
* @property blur | ||
* @type Number the strength of the blur | ||
* @type Number | ||
* @default 2 | ||
@@ -68,0 +68,0 @@ */ |
@@ -8,3 +8,3 @@ /** | ||
* @constructor | ||
* @param points* {Array<Point>|Array<Number>|Point...|Number...} This can be an array of Points that form the polygon, | ||
* @param points* {Array(Point)|Array(Number)|Point...|Number...} This can be an array of Points that form the polygon, | ||
* a flat array of numbers that will be interpreted as [x,y, x,y, ...], or the arguments passed can be | ||
@@ -11,0 +11,0 @@ * all the points of the polygon e.g. `new PIXI.Polygon(new PIXI.Point(), new PIXI.Point(), ...)`, or the |
@@ -6,5 +6,5 @@ /** | ||
/** | ||
* the Rounded Rectangle object is an area defined by its position and has nice rounded corners, as indicated by its top-left corner point (x, y) and by its width and its height. | ||
* The Rounded Rectangle object is an area defined by its position and has nice rounded corners, as indicated by its top-left corner point (x, y) and by its width and its height. | ||
* | ||
* @class Rounded Rectangle | ||
* @class RoundedRectangle | ||
* @constructor | ||
@@ -59,3 +59,3 @@ * @param x {Number} The X coordinate of the upper-left corner of the rounded rectangle | ||
* @method clone | ||
* @return {rounded Rectangle} a copy of the rounded rectangle | ||
* @return {RoundedRectangle} a copy of the rounded rectangle | ||
*/ | ||
@@ -62,0 +62,0 @@ PIXI.RoundedRectangle.prototype.clone = function() |
@@ -147,2 +147,5 @@ /** | ||
this.resolution = 1; | ||
// used for hit testing | ||
this._tempPoint = new PIXI.Point(); | ||
}; | ||
@@ -604,14 +607,9 @@ | ||
// temp fix for if the element is in a non visible | ||
// map the global point to local space. | ||
item.worldTransform.applyInverse(global, this._tempPoint); | ||
var worldTransform = item.worldTransform, i, | ||
a = worldTransform.a, b = worldTransform.b, | ||
c = worldTransform.c, tx = worldTransform.tx, | ||
d = worldTransform.d, ty = worldTransform.ty, | ||
id = 1 / (a * d + c * -b), | ||
x = d * id * global.x + -c * id * global.y + (ty * c - tx * d) * id, | ||
y = a * id * global.y + -b * id * global.x + (-ty * a + tx * b) * id; | ||
var x = this._tempPoint.x, | ||
y = this._tempPoint.y, | ||
i; | ||
interactionData.target = item; | ||
@@ -622,8 +620,3 @@ | ||
{ | ||
if (item.hitArea.contains(x, y)) | ||
{ | ||
interactionData.target = item; | ||
return true; | ||
} | ||
return false; | ||
return item.hitArea.contains(x, y); | ||
} | ||
@@ -645,3 +638,2 @@ // a sprite with no hitarea defined | ||
// set the target property if a hit is true! | ||
interactionData.target = item; | ||
return true; | ||
@@ -664,3 +656,3 @@ } | ||
{ | ||
interactionData.target = item; | ||
//interactionData.target = item; | ||
return true; | ||
@@ -667,0 +659,0 @@ } |
@@ -15,3 +15,3 @@ /** | ||
* @uses EventTarget | ||
* @param assetURLs {Array<String>} An array of image/sprite sheet urls that you would like loaded | ||
* @param assetURLs {Array(String)} An array of image/sprite sheet urls that you would like loaded | ||
* supported. Supported image formats include 'jpeg', 'jpg', 'png', 'gif'. Supported | ||
@@ -28,3 +28,3 @@ * sprite sheet data formats only include 'JSON' at this time. Supported bitmap font | ||
* @property assetURLs | ||
* @type Array<String> | ||
* @type Array(String) | ||
*/ | ||
@@ -31,0 +31,0 @@ this.assetURLs = assetURLs; |
@@ -17,3 +17,2 @@ /** | ||
PIXI.JsonLoader = function (url, crossorigin) { | ||
/** | ||
@@ -57,3 +56,2 @@ * The url of the bitmap font data | ||
PIXI.JsonLoader.prototype.constructor = PIXI.JsonLoader; | ||
PIXI.EventTarget.mixin(PIXI.JsonLoader.prototype); | ||
@@ -83,14 +81,18 @@ | ||
this.ajaxRequest.onload = this.onJSONLoaded.bind(this); | ||
} | ||
else if (window.XMLHttpRequest) | ||
{ | ||
this.ajaxRequest = new window.XMLHttpRequest(); | ||
} | ||
else | ||
{ | ||
this.ajaxRequest = new window.ActiveXObject('Microsoft.XMLHTTP'); | ||
if (window.XMLHttpRequest) | ||
{ | ||
this.ajaxRequest = new window.XMLHttpRequest(); | ||
} | ||
else | ||
{ | ||
this.ajaxRequest = new window.ActiveXObject('Microsoft.XMLHTTP'); | ||
} | ||
this.ajaxRequest.onreadystatechange = this.onReadyStateChanged.bind(this); | ||
} | ||
this.ajaxRequest.onload = this.onJSONLoaded.bind(this); | ||
this.ajaxRequest.open('GET',this.url,true); | ||
@@ -102,4 +104,16 @@ | ||
/** | ||
* Invoked when the JSON file is loaded. | ||
* Bridge function to be able to use the more reliable onreadystatechange in XMLHttpRequest. | ||
* | ||
* @method onReadyStateChanged | ||
* @private | ||
*/ | ||
PIXI.JsonLoader.prototype.onReadyStateChanged = function () { | ||
if (this.ajaxRequest.readyState === 4 && (this.ajaxRequest.status === 200 || window.location.href.indexOf('http') === -1)) { | ||
this.onJSONLoaded(); | ||
} | ||
}; | ||
/** | ||
* Invoke when JSON file is loaded | ||
* | ||
* @method onJSONLoaded | ||
@@ -118,3 +132,3 @@ * @private | ||
if(this.json.frames) | ||
if(this.json.frames && this.json.meta && this.json.meta.image) | ||
{ | ||
@@ -138,3 +152,3 @@ // sprite sheet | ||
var trim = null; | ||
// Check to see if the sprite is trimmed | ||
@@ -156,7 +170,57 @@ if (frameData[i].trimmed) | ||
{ | ||
// spine animation | ||
var spineJsonParser = new spine.SkeletonJson(); | ||
var skeletonData = spineJsonParser.readSkeletonData(this.json); | ||
PIXI.AnimCache[this.url] = skeletonData; | ||
this.onLoaded(); | ||
/* check if the json was loaded before */ | ||
if (PIXI.AnimCache[this.url]) | ||
{ | ||
this.onLoaded(); | ||
} | ||
else | ||
{ | ||
/* use a bit of hackery to load the atlas file, here we assume that the .json, .atlas and .png files | ||
* that correspond to the spine file are in the same base URL and that the .json and .atlas files | ||
* have the same name | ||
*/ | ||
var atlasPath = this.url.substr(0, this.url.lastIndexOf('.')) + '.atlas'; | ||
var atlasLoader = new PIXI.JsonLoader(atlasPath, this.crossorigin); | ||
// save a copy of the current object for future reference // | ||
var originalLoader = this; | ||
// before loading the file, replace the "onJSONLoaded" function for our own // | ||
atlasLoader.onJSONLoaded = function() | ||
{ | ||
// at this point "this" points at the atlasLoader (JsonLoader) instance // | ||
if(!this.ajaxRequest.responseText) | ||
{ | ||
this.onError(); // FIXME: hmm, this is funny because we are not responding to errors yet | ||
return; | ||
} | ||
// create a new instance of a spine texture loader for this spine object // | ||
var textureLoader = new PIXI.SpineTextureLoader(this.url.substring(0, this.url.lastIndexOf('/'))); | ||
// create a spine atlas using the loaded text and a spine texture loader instance // | ||
var spineAtlas = new spine.Atlas(this.ajaxRequest.responseText, textureLoader); | ||
// now we use an atlas attachment loader // | ||
var attachmentLoader = new spine.AtlasAttachmentLoader(spineAtlas); | ||
// spine animation | ||
var spineJsonParser = new spine.SkeletonJson(attachmentLoader); | ||
var skeletonData = spineJsonParser.readSkeletonData(originalLoader.json); | ||
PIXI.AnimCache[originalLoader.url] = skeletonData; | ||
originalLoader.spine = skeletonData; | ||
originalLoader.spineAtlas = spineAtlas; | ||
originalLoader.spineAtlasLoader = atlasLoader; | ||
// wait for textures to finish loading if needed | ||
if (textureLoader.loadingCount > 0) | ||
{ | ||
textureLoader.addEventListener('loadedBaseTexture', function(evt){ | ||
if (evt.content.content.loadingCount <= 0) | ||
{ | ||
originalLoader.onLoaded(); | ||
} | ||
}); | ||
} | ||
else | ||
{ | ||
originalLoader.onLoaded(); | ||
} | ||
}; | ||
// start the loading // | ||
atlasLoader.load(); | ||
} | ||
} | ||
@@ -170,3 +234,3 @@ else | ||
/** | ||
* Invoked when the json file has loaded. | ||
* Invoke when json file loaded | ||
* | ||
@@ -185,3 +249,3 @@ * @method onLoaded | ||
/** | ||
* Invoked if an error occurs. | ||
* Invoke when error occured | ||
* | ||
@@ -188,0 +252,0 @@ * @method onError |
@@ -6,19 +6,59 @@ /** | ||
/** | ||
* The [pixi.js](http://www.pixijs.com/) module/namespace. | ||
* | ||
* @module PIXI | ||
*/ | ||
/** | ||
* Namespace-class for [pixi.js](http://www.pixijs.com/). | ||
* | ||
* Contains assorted static properties and enumerations. | ||
* | ||
* @class PIXI | ||
* @static | ||
*/ | ||
var PIXI = PIXI || {}; | ||
/* | ||
* | ||
* This file contains a lot of pixi consts which are used across the rendering engine | ||
* @class Consts | ||
*/ | ||
/** | ||
* @property {Number} WEBGL_RENDERER | ||
* @protected | ||
* @static | ||
*/ | ||
PIXI.WEBGL_RENDERER = 0; | ||
/** | ||
* @property {Number} CANVAS_RENDERER | ||
* @protected | ||
* @static | ||
*/ | ||
PIXI.CANVAS_RENDERER = 1; | ||
// useful for testing against if your lib is using pixi. | ||
PIXI.VERSION = "v2.1.0"; | ||
/** | ||
* Version of pixi that is loaded. | ||
* @property {String} VERSION | ||
* @static | ||
*/ | ||
PIXI.VERSION = "v2.2.0"; | ||
// the various blend modes supported by pixi | ||
/** | ||
* Various blend modes supported by pixi. IMPORTANT - The WebGL renderer only supports the NORMAL, ADD, MULTIPLY and SCREEN blend modes. | ||
* @property {Object} blendModes | ||
* @property {Number} blendModes.NORMAL | ||
* @property {Number} blendModes.ADD | ||
* @property {Number} blendModes.MULTIPLY | ||
* @property {Number} blendModes.SCREEN | ||
* @property {Number} blendModes.OVERLAY | ||
* @property {Number} blendModes.DARKEN | ||
* @property {Number} blendModes.LIGHTEN | ||
* @property {Number} blendModes.COLOR_DODGE | ||
* @property {Number} blendModes.COLOR_BURN | ||
* @property {Number} blendModes.HARD_LIGHT | ||
* @property {Number} blendModes.SOFT_LIGHT | ||
* @property {Number} blendModes.DIFFERENCE | ||
* @property {Number} blendModes.EXCLUSION | ||
* @property {Number} blendModes.HUE | ||
* @property {Number} blendModes.SATURATION | ||
* @property {Number} blendModes.COLOR | ||
* @property {Number} blendModes.LUMINOSITY | ||
* @static | ||
*/ | ||
PIXI.blendModes = { | ||
@@ -44,3 +84,14 @@ NORMAL:0, | ||
// the scale modes | ||
/** | ||
* The scale modes that are supported by pixi. | ||
* | ||
* The DEFAULT scale mode affects the default scaling mode of future operations. | ||
* It can be re-assigned to either LINEAR or NEAREST, depending upon suitability. | ||
* | ||
* @property {Object} scaleModes | ||
* @property {Number} scaleModes.DEFAULT=LINEAR | ||
* @property {Number} scaleModes.LINEAR Smooth scaling | ||
* @property {Number} scaleModes.NEAREST Pixelating scaling | ||
* @static | ||
*/ | ||
PIXI.scaleModes = { | ||
@@ -59,2 +110,10 @@ DEFAULT:0, | ||
PIXI.Uint16Array = Uint16Array; | ||
// Uint32Array and ArrayBuffer only used by WebGL renderer | ||
// We can suppose that if WebGL is supported then typed arrays are supported too | ||
// as they predate WebGL support for all browsers: | ||
// see typed arrays support: http://caniuse.com/#search=TypedArrays | ||
// see WebGL support: http://caniuse.com/#search=WebGL | ||
PIXI.Uint32Array = Uint32Array; | ||
PIXI.ArrayBuffer = ArrayBuffer; | ||
} | ||
@@ -71,15 +130,54 @@ else | ||
/** | ||
* @property {Number} PI_2 | ||
* @static | ||
*/ | ||
PIXI.PI_2 = Math.PI * 2; | ||
/** | ||
* @property {Number} RAD_TO_DEG | ||
* @static | ||
*/ | ||
PIXI.RAD_TO_DEG = 180 / Math.PI; | ||
/** | ||
* @property {Number} DEG_TO_RAD | ||
* @static | ||
*/ | ||
PIXI.DEG_TO_RAD = Math.PI / 180; | ||
/** | ||
* @property {String} RETINA_PREFIX | ||
* @protected | ||
* @static | ||
*/ | ||
PIXI.RETINA_PREFIX = "@2x"; | ||
//PIXI.SCALE_PREFIX "@x%%"; | ||
/** | ||
* If true the default pixi startup (console) banner message will be suppressed. | ||
* | ||
* @property {Boolean} dontSayHello | ||
* @default false | ||
* @static | ||
*/ | ||
PIXI.dontSayHello = false; | ||
/** | ||
* The default render options if none are supplied to | ||
* {{#crossLink "WebGLRenderer"}}{{/crossLink}} or {{#crossLink "CanvasRenderer"}}{{/crossLink}}. | ||
* | ||
* @property {Object} defaultRenderOptions | ||
* @property {Object} defaultRenderOptions.view=null | ||
* @property {Boolean} defaultRenderOptions.transparent=false | ||
* @property {Boolean} defaultRenderOptions.antialias=false | ||
* @property {Boolean} defaultRenderOptions.preserveDrawingBuffer=false | ||
* @property {Number} defaultRenderOptions.resolution=1 | ||
* @property {Boolean} defaultRenderOptions.clearBeforeRender=true | ||
* @property {Boolean} defaultRenderOptions.autoResize=false | ||
* @static | ||
*/ | ||
PIXI.defaultRenderOptions = { | ||
view:null, | ||
transparent:false, | ||
view:null, | ||
transparent:false, | ||
antialias:false, | ||
@@ -111,4 +209,2 @@ preserveDrawingBuffer:false, | ||
console.log.apply(console, args); | ||
@@ -115,0 +211,0 @@ } |
@@ -60,3 +60,3 @@ /** | ||
this.tint = 0xFFFFFF; | ||
/** | ||
@@ -431,15 +431,23 @@ * The blend mode to be applied to the graphic shape. Apply a value of PIXI.blendModes.NORMAL to reset the blend mode. | ||
var startY = cy + Math.sin(startAngle) * radius; | ||
var points = this.currentPath.shape.points; | ||
var points; | ||
if(points.length === 0) | ||
if( this.currentPath ) | ||
{ | ||
this.moveTo(startX, startY); | ||
points = this.currentPath.shape.points; | ||
if(points.length === 0) | ||
{ | ||
points.push(startX, startY); | ||
} | ||
else if( points[points.length-2] !== startX || points[points.length-1] !== startY) | ||
{ | ||
points.push(startX, startY); | ||
} | ||
} | ||
else if( points[points.length-2] !== startX || points[points.length-1] !== startY) | ||
else | ||
{ | ||
points.push(startX, startY); | ||
this.moveTo(startX, startY); | ||
points = this.currentPath.shape.points; | ||
} | ||
if (startAngle === endAngle)return this; | ||
@@ -1106,5 +1114,7 @@ | ||
this.lineAlpha = lineAlpha; | ||
this._lineTint = lineColor; | ||
this.fillColor = fillColor; | ||
this.fillAlpha = fillAlpha; | ||
this._fillTint = fillColor; | ||
this.fill = fill; | ||
@@ -1111,0 +1121,0 @@ |
@@ -27,4 +27,10 @@ /** | ||
var worldAlpha = graphics.worldAlpha; | ||
var color = ''; | ||
if(graphics.dirty) | ||
{ | ||
this.updateGraphicsTint(graphics); | ||
graphics.dirty = false; | ||
} | ||
for (var i = 0; i < graphics.graphicsData.length; i++) | ||
@@ -35,3 +41,4 @@ { | ||
context.strokeStyle = color = '#' + ('00000' + ( data.lineColor | 0).toString(16)).substr(-6); | ||
var fillColor = data._fillTint; | ||
var lineColor = data._lineTint; | ||
@@ -67,3 +74,3 @@ context.lineWidth = data.lineWidth; | ||
context.globalAlpha = data.fillAlpha * worldAlpha; | ||
context.fillStyle = color = '#' + ('00000' + ( data.fillColor | 0).toString(16)).substr(-6); | ||
context.fillStyle = '#' + ('00000' + ( fillColor | 0).toString(16)).substr(-6); | ||
context.fill(); | ||
@@ -74,2 +81,3 @@ } | ||
context.globalAlpha = data.lineAlpha * worldAlpha; | ||
context.strokeStyle = '#' + ('00000' + ( lineColor | 0).toString(16)).substr(-6); | ||
context.stroke(); | ||
@@ -84,3 +92,3 @@ } | ||
context.globalAlpha = data.fillAlpha * worldAlpha; | ||
context.fillStyle = color = '#' + ('00000' + ( data.fillColor | 0).toString(16)).substr(-6); | ||
context.fillStyle = '#' + ('00000' + ( fillColor | 0).toString(16)).substr(-6); | ||
context.fillRect(shape.x, shape.y, shape.width, shape.height); | ||
@@ -92,2 +100,3 @@ | ||
context.globalAlpha = data.lineAlpha * worldAlpha; | ||
context.strokeStyle = '#' + ('00000' + ( lineColor | 0).toString(16)).substr(-6); | ||
context.strokeRect(shape.x, shape.y, shape.width, shape.height); | ||
@@ -106,3 +115,3 @@ } | ||
context.globalAlpha = data.fillAlpha * worldAlpha; | ||
context.fillStyle = color = '#' + ('00000' + ( data.fillColor | 0).toString(16)).substr(-6); | ||
context.fillStyle = '#' + ('00000' + ( fillColor | 0).toString(16)).substr(-6); | ||
context.fill(); | ||
@@ -113,2 +122,3 @@ } | ||
context.globalAlpha = data.lineAlpha * worldAlpha; | ||
context.strokeStyle = '#' + ('00000' + ( lineColor | 0).toString(16)).substr(-6); | ||
context.stroke(); | ||
@@ -148,3 +158,3 @@ } | ||
context.globalAlpha = data.fillAlpha * worldAlpha; | ||
context.fillStyle = color = '#' + ('00000' + ( data.fillColor | 0).toString(16)).substr(-6); | ||
context.fillStyle = '#' + ('00000' + ( fillColor | 0).toString(16)).substr(-6); | ||
context.fill(); | ||
@@ -155,2 +165,3 @@ } | ||
context.globalAlpha = data.lineAlpha * worldAlpha; | ||
context.strokeStyle = '#' + ('00000' + ( lineColor | 0).toString(16)).substr(-6); | ||
context.stroke(); | ||
@@ -185,3 +196,3 @@ } | ||
context.globalAlpha = data.fillAlpha * worldAlpha; | ||
context.fillStyle = color = '#' + ('00000' + ( data.fillColor | 0).toString(16)).substr(-6); | ||
context.fillStyle = '#' + ('00000' + ( fillColor | 0).toString(16)).substr(-6); | ||
context.fill(); | ||
@@ -193,2 +204,3 @@ | ||
context.globalAlpha = data.lineAlpha * worldAlpha; | ||
context.strokeStyle = '#' + ('00000' + ( lineColor | 0).toString(16)).substr(-6); | ||
context.stroke(); | ||
@@ -314,1 +326,46 @@ } | ||
}; | ||
PIXI.CanvasGraphics.updateGraphicsTint = function(graphics) | ||
{ | ||
if(graphics.tint === 0xFFFFFF)return; | ||
var tintR = (graphics.tint >> 16 & 0xFF) / 255; | ||
var tintG = (graphics.tint >> 8 & 0xFF) / 255; | ||
var tintB = (graphics.tint & 0xFF)/ 255; | ||
for (var i = 0; i < graphics.graphicsData.length; i++) | ||
{ | ||
var data = graphics.graphicsData[i]; | ||
var fillColor = data.fillColor | 0; | ||
var lineColor = data.lineColor | 0; | ||
/* | ||
var colorR = (fillColor >> 16 & 0xFF) / 255; | ||
var colorG = (fillColor >> 8 & 0xFF) / 255; | ||
var colorB = (fillColor & 0xFF) / 255; | ||
colorR *= tintR; | ||
colorG *= tintG; | ||
colorB *= tintB; | ||
fillColor = ((colorR*255 << 16) + (colorG*255 << 8) + colorB*255); | ||
colorR = (lineColor >> 16 & 0xFF) / 255; | ||
colorG = (lineColor >> 8 & 0xFF) / 255; | ||
colorB = (lineColor & 0xFF) / 255; | ||
colorR *= tintR; | ||
colorG *= tintG; | ||
colorB *= tintB; | ||
lineColor = ((colorR*255 << 16) + (colorG*255 << 8) + colorB*255); | ||
*/ | ||
// super inline cos im an optimization NAZI :) | ||
data._fillTint = (((fillColor >> 16 & 0xFF) / 255 * tintR*255 << 16) + ((fillColor >> 8 & 0xFF) / 255 * tintG*255 << 8) + (fillColor & 0xFF) / 255 * tintB*255); | ||
data._lineTint = (((lineColor >> 16 & 0xFF) / 255 * tintR*255 << 16) + ((lineColor >> 8 & 0xFF) / 255 * tintG*255 << 8) + (lineColor & 0xFF) / 255 * tintB*255); | ||
} | ||
}; | ||
@@ -6,4 +6,5 @@ /** | ||
/** | ||
* Utility methods for Sprite/Texture tinting. | ||
* | ||
* @class CanvasTinter | ||
* @constructor | ||
* @static | ||
@@ -19,2 +20,3 @@ */ | ||
* @method getTintedTexture | ||
* @static | ||
* @param sprite {Sprite} the sprite to tint | ||
@@ -64,2 +66,3 @@ * @param color {Number} the color to use to tint the sprite with | ||
* @method tintWithMultiply | ||
* @static | ||
* @param texture {Texture} the texture to tint | ||
@@ -111,2 +114,3 @@ * @param color {Number} the color to use to tint the sprite with | ||
* @method tintWithOverlay | ||
* @static | ||
* @param texture {Texture} the texture to tint | ||
@@ -147,2 +151,3 @@ * @param color {Number} the color to use to tint the sprite with | ||
* @method tintPerPixel | ||
* @static | ||
* @param texture {Texture} the texture to tint | ||
@@ -193,2 +198,3 @@ * @param color {Number} the color to use to tint the sprite with | ||
* @method roundColor | ||
* @static | ||
* @param color {number} the color to round, should be a hex color | ||
@@ -212,4 +218,5 @@ */ | ||
* | ||
* @property cacheStepsPerColorChannel | ||
* @property cacheStepsPerColorChannel | ||
* @type Number | ||
* @static | ||
*/ | ||
@@ -223,2 +230,3 @@ PIXI.CanvasTinter.cacheStepsPerColorChannel = 8; | ||
* @type Boolean | ||
* @static | ||
*/ | ||
@@ -232,2 +240,3 @@ PIXI.CanvasTinter.convertTintToImage = false; | ||
* @type Boolean | ||
* @static | ||
*/ | ||
@@ -240,3 +249,4 @@ PIXI.CanvasTinter.canUseMultiply = PIXI.canUseNewCanvasBlendModes(); | ||
* @method tintMethod | ||
* @static | ||
*/ | ||
PIXI.CanvasTinter.tintMethod = PIXI.CanvasTinter.canUseMultiply ? PIXI.CanvasTinter.tintWithMultiply : PIXI.CanvasTinter.tintWithPerPixel; |
@@ -28,3 +28,3 @@ /** | ||
* @property program | ||
* @type {Any} | ||
* @type Any | ||
*/ | ||
@@ -64,3 +64,3 @@ this.program = null; | ||
'uniform vec3 color;', | ||
'uniform float flipY;', | ||
'varying vec4 vColor;', | ||
@@ -71,3 +71,3 @@ | ||
' v -= offsetVector.xyx;', | ||
' gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);', | ||
' gl_Position = vec4( v.x / projectionVector.x -1.0, (v.y / projectionVector.y * -flipY) + flipY , 0.0, 1.0);', | ||
' vColor = vec4(color * alpha * tint, alpha);',//" * vec4(tint * alpha, alpha);', | ||
@@ -99,2 +99,3 @@ '}' | ||
this.color = gl.getUniformLocation(program, 'color'); | ||
this.flipY = gl.getUniformLocation(program, 'flipY'); | ||
@@ -101,0 +102,0 @@ // get and store the attributes |
@@ -28,3 +28,3 @@ /** | ||
* @property program | ||
* @type {Any} | ||
* @type Any | ||
*/ | ||
@@ -31,0 +31,0 @@ this.program = null; |
@@ -29,3 +29,3 @@ /** | ||
* @property program | ||
* @type {Any} | ||
* @type Any | ||
*/ | ||
@@ -388,5 +388,4 @@ this.program = null; | ||
' vTextureCoord = aTextureCoord;', | ||
' vec3 color = mod(vec3(aColor.y/65536.0, aColor.y/256.0, aColor.y), 256.0) / 256.0;', | ||
' vColor = vec4(color * aColor.x, aColor.x);', | ||
' vColor = vec4(aColor.rgb * aColor.a, aColor.a);', | ||
'}' | ||
]; | ||
]; |
@@ -28,3 +28,3 @@ /** | ||
* @property program | ||
* @type {Any} | ||
* @type Any | ||
*/ | ||
@@ -59,2 +59,3 @@ this.program = null; | ||
'uniform float alpha;', | ||
'uniform float flipY;', | ||
'uniform vec3 tint;', | ||
@@ -66,3 +67,3 @@ 'varying vec4 vColor;', | ||
' v -= offsetVector.xyx;', | ||
' gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);', | ||
' gl_Position = vec4( v.x / projectionVector.x -1.0, (v.y / projectionVector.y * -flipY) + flipY , 0.0, 1.0);', | ||
' vColor = aColor * vec4(tint * alpha, alpha);', | ||
@@ -93,2 +94,3 @@ '}' | ||
this.tintColor = gl.getUniformLocation(program, 'tint'); | ||
this.flipY = gl.getUniformLocation(program, 'flipY'); | ||
@@ -95,0 +97,0 @@ // get and store the attributes |
@@ -28,3 +28,3 @@ /** | ||
* @property program | ||
* @type {Any} | ||
* @type Any | ||
*/ | ||
@@ -31,0 +31,0 @@ this.program = null; |
@@ -11,3 +11,3 @@ /** | ||
* @param height {Number} the vertical range of the filter | ||
* @param scaleMode {Number} Should be one of the PIXI.scaleMode consts | ||
* @param scaleMode {Number} See {{#crossLink "PIXI/scaleModes:property"}}PIXI.scaleModes{{/crossLink}} for possible values | ||
*/ | ||
@@ -14,0 +14,0 @@ PIXI.FilterTexture = function(gl, width, height, scaleMode) |
@@ -63,3 +63,5 @@ /** | ||
gl.uniformMatrix3fv(shader.translationMatrix, false, graphics.worldTransform.toArray(true)); | ||
gl.uniform1f(shader.flipY, 1); | ||
gl.uniform2f(shader.projectionVector, projection.x, -projection.y); | ||
@@ -139,4 +141,4 @@ gl.uniform2f(shader.offsetVector, -offset.x, -offset.y); | ||
{ | ||
// close the poly if the valu is true! | ||
if(data.points[0] !== data.points[data.points.length-2] && data.points[1] !== data.points[data.points.length-1]) | ||
// close the poly if the value is true! | ||
if(data.points[0] !== data.points[data.points.length-2] || data.points[1] !== data.points[data.points.length-1]) | ||
{ | ||
@@ -354,2 +356,4 @@ data.points.push(data.points[0], data.points[1]); | ||
// | ||
var i = 0; | ||
@@ -365,2 +369,3 @@ for (i = 0; i < triangles.length; i+=3) | ||
for (i = 0; i < recPoints.length; i++) | ||
@@ -396,3 +401,3 @@ { | ||
* @param toY {Number} Destination point y | ||
* @return {Array<Number>} | ||
* @return {Array(Number)} | ||
*/ | ||
@@ -861,3 +866,2 @@ PIXI.WebGLGraphics.quadraticBezierCurve = function(fromX, fromY, cpX, cpY, toX, toY) { | ||
this.indices = []; | ||
this.lastIndex = 0; | ||
this.buffer = gl.createBuffer(); | ||
@@ -877,3 +881,2 @@ this.indexBuffer = gl.createBuffer(); | ||
this.indices = []; | ||
this.lastIndex = 0; | ||
}; | ||
@@ -880,0 +883,0 @@ |
@@ -6,3 +6,4 @@ /** | ||
* for creating the original pixi version! | ||
* | ||
* Also a thanks to https://github.com/bchevalier for tweaking the tint and alpha so that they now share 4 bytes on the vertex buffer | ||
* | ||
* Heavily inspired by LibGDX's WebGLSpriteBatch: | ||
@@ -24,3 +25,3 @@ * https://github.com/libgdx/libgdx/blob/master/gdx/src/com/badlogic/gdx/graphics/g2d/WebGLSpriteBatch.java | ||
*/ | ||
this.vertSize = 6; | ||
this.vertSize = 5; | ||
@@ -34,4 +35,4 @@ /** | ||
//the total number of floats in our batch | ||
var numVerts = this.size * 4 * this.vertSize; | ||
//the total number of bytes in our batch | ||
var numVerts = this.size * 4 * 4 * this.vertSize; | ||
//the total number of indices in our batch | ||
@@ -44,7 +45,23 @@ var numIndices = this.size * 6; | ||
* @property vertices | ||
* @type ArrayBuffer | ||
*/ | ||
this.vertices = new PIXI.ArrayBuffer(numVerts); | ||
/** | ||
* View on the vertices as a Float32Array | ||
* | ||
* @property positions | ||
* @type Float32Array | ||
*/ | ||
this.vertices = new PIXI.Float32Array(numVerts); | ||
this.positions = new PIXI.Float32Array(this.vertices); | ||
/** | ||
* View on the vertices as a Uint32Array | ||
* | ||
* @property colors | ||
* @type Uint32Array | ||
*/ | ||
this.colors = new PIXI.Uint32Array(this.vertices); | ||
/** | ||
* Holds the indices | ||
@@ -195,3 +212,3 @@ * | ||
var texture = sprite.texture; | ||
//TODO set blend modes.. | ||
@@ -210,8 +227,2 @@ // check texture.. | ||
// get the sprites current alpha | ||
var alpha = sprite.worldAlpha; | ||
var tint = sprite.tint; | ||
var verticies = this.vertices; | ||
// TODO trim?? | ||
@@ -257,46 +268,66 @@ var aX = sprite.anchor.x; | ||
var colors = this.colors; | ||
var positions = this.positions; | ||
// xy | ||
verticies[index++] = a * w1 + c * h1 + tx; | ||
verticies[index++] = d * h1 + b * w1 + ty; | ||
if(this.renderSession.roundPixels) | ||
{ | ||
// xy | ||
positions[index] = a * w1 + c * h1 + tx | 0; | ||
positions[index+1] = d * h1 + b * w1 + ty | 0; | ||
// xy | ||
positions[index+5] = a * w0 + c * h1 + tx | 0; | ||
positions[index+6] = d * h1 + b * w0 + ty | 0; | ||
// xy | ||
positions[index+10] = a * w0 + c * h0 + tx | 0; | ||
positions[index+11] = d * h0 + b * w0 + ty | 0; | ||
// xy | ||
positions[index+15] = a * w1 + c * h0 + tx | 0; | ||
positions[index+16] = d * h0 + b * w1 + ty | 0; | ||
} | ||
else | ||
{ | ||
// xy | ||
positions[index] = a * w1 + c * h1 + tx; | ||
positions[index+1] = d * h1 + b * w1 + ty; | ||
// xy | ||
positions[index+5] = a * w0 + c * h1 + tx; | ||
positions[index+6] = d * h1 + b * w0 + ty; | ||
// xy | ||
positions[index+10] = a * w0 + c * h0 + tx; | ||
positions[index+11] = d * h0 + b * w0 + ty; | ||
// xy | ||
positions[index+15] = a * w1 + c * h0 + tx; | ||
positions[index+16] = d * h0 + b * w1 + ty; | ||
} | ||
// uv | ||
verticies[index++] = uvs.x0; | ||
verticies[index++] = uvs.y0; | ||
// color | ||
verticies[index++] = alpha; | ||
verticies[index++] = tint; | ||
positions[index+2] = uvs.x0; | ||
positions[index+3] = uvs.y0; | ||
// xy | ||
verticies[index++] = a * w0 + c * h1 + tx; | ||
verticies[index++] = d * h1 + b * w0 + ty; | ||
// uv | ||
verticies[index++] = uvs.x1; | ||
verticies[index++] = uvs.y1; | ||
// color | ||
verticies[index++] = alpha; | ||
verticies[index++] = tint; | ||
positions[index+7] = uvs.x1; | ||
positions[index+8] = uvs.y1; | ||
// xy | ||
verticies[index++] = a * w0 + c * h0 + tx; | ||
verticies[index++] = d * h0 + b * w0 + ty; | ||
// uv | ||
positions[index+12] = uvs.x2; | ||
positions[index+13] = uvs.y2; | ||
// uv | ||
verticies[index++] = uvs.x2; | ||
verticies[index++] = uvs.y2; | ||
// color | ||
verticies[index++] = alpha; | ||
verticies[index++] = tint; | ||
positions[index+17] = uvs.x3; | ||
positions[index+18] = uvs.y3; | ||
// xy | ||
verticies[index++] = a * w1 + c * h0 + tx; | ||
verticies[index++] = d * h0 + b * w1 + ty; | ||
// uv | ||
verticies[index++] = uvs.x3; | ||
verticies[index++] = uvs.y3; | ||
// color | ||
verticies[index++] = alpha; | ||
verticies[index++] = tint; | ||
// color and alpha | ||
var tint = sprite.tint; | ||
colors[index+4] = colors[index+9] = colors[index+14] = colors[index+19] = (tint >> 16) + (tint & 0xff00) + ((tint & 0xff) << 16) + (sprite.worldAlpha * 255 << 24); | ||
// increment the batchsize | ||
this.sprites[this.currentBatchSize++] = sprite; | ||
}; | ||
@@ -348,9 +379,10 @@ | ||
uvs.x3 = 0 - offsetX; | ||
uvs.y3 = (1 *scaleY) - offsetY; | ||
uvs.y3 = (1 * scaleY) - offsetY; | ||
// get the tilingSprites current alpha | ||
var alpha = tilingSprite.worldAlpha; | ||
// get the tilingSprites current alpha and tint and combining them into a single color | ||
var tint = tilingSprite.tint; | ||
var color = (tint >> 16) + (tint & 0xff00) + ((tint & 0xff) << 16) + (tilingSprite.alpha * 255 << 24); | ||
var verticies = this.vertices; | ||
var positions = this.positions; | ||
var colors = this.colors; | ||
@@ -380,43 +412,39 @@ var width = tilingSprite.width; | ||
var tx = worldTransform.tx;//[2]; | ||
var ty = worldTransform.ty;///[5]; | ||
var ty = worldTransform.ty;//[5]; | ||
// xy | ||
verticies[index++] = a * w1 + c * h1 + tx; | ||
verticies[index++] = d * h1 + b * w1 + ty; | ||
positions[index++] = a * w1 + c * h1 + tx; | ||
positions[index++] = d * h1 + b * w1 + ty; | ||
// uv | ||
verticies[index++] = uvs.x0; | ||
verticies[index++] = uvs.y0; | ||
positions[index++] = uvs.x0; | ||
positions[index++] = uvs.y0; | ||
// color | ||
verticies[index++] = alpha; | ||
verticies[index++] = tint; | ||
colors[index++] = color; | ||
// xy | ||
verticies[index++] = (a * w0 + c * h1 + tx); | ||
verticies[index++] = d * h1 + b * w0 + ty; | ||
positions[index++] = (a * w0 + c * h1 + tx); | ||
positions[index++] = d * h1 + b * w0 + ty; | ||
// uv | ||
verticies[index++] = uvs.x1; | ||
verticies[index++] = uvs.y1; | ||
positions[index++] = uvs.x1; | ||
positions[index++] = uvs.y1; | ||
// color | ||
verticies[index++] = alpha; | ||
verticies[index++] = tint; | ||
colors[index++] = color; | ||
// xy | ||
verticies[index++] = a * w0 + c * h0 + tx; | ||
verticies[index++] = d * h0 + b * w0 + ty; | ||
positions[index++] = a * w0 + c * h0 + tx; | ||
positions[index++] = d * h0 + b * w0 + ty; | ||
// uv | ||
verticies[index++] = uvs.x2; | ||
verticies[index++] = uvs.y2; | ||
positions[index++] = uvs.x2; | ||
positions[index++] = uvs.y2; | ||
// color | ||
verticies[index++] = alpha; | ||
verticies[index++] = tint; | ||
colors[index++] = color; | ||
// xy | ||
verticies[index++] = a * w1 + c * h0 + tx; | ||
verticies[index++] = d * h0 + b * w1 + ty; | ||
positions[index++] = a * w1 + c * h0 + tx; | ||
positions[index++] = d * h0 + b * w1 + ty; | ||
// uv | ||
verticies[index++] = uvs.x3; | ||
verticies[index++] = uvs.y3; | ||
positions[index++] = uvs.x3; | ||
positions[index++] = uvs.y3; | ||
// color | ||
verticies[index++] = alpha; | ||
verticies[index++] = tint; | ||
colors[index++] = color; | ||
@@ -456,3 +484,5 @@ // increment the batchsize | ||
gl.vertexAttribPointer(shader.aTextureCoord, 2, gl.FLOAT, false, stride, 2 * 4); | ||
gl.vertexAttribPointer(shader.colorAttribute, 2, gl.FLOAT, false, stride, 4 * 4); | ||
// color attributes will be interpreted as unsigned bytes and normalized | ||
gl.vertexAttribPointer(shader.colorAttribute, 4, gl.UNSIGNED_BYTE, true, stride, 4 * 4); | ||
} | ||
@@ -467,3 +497,3 @@ | ||
{ | ||
var view = this.vertices.subarray(0, this.currentBatchSize * 4 * this.vertSize); | ||
var view = this.positions.subarray(0, this.currentBatchSize * 4 * this.vertSize); | ||
gl.bufferSubData(gl.ARRAY_BUFFER, 0, view); | ||
@@ -616,2 +646,2 @@ } | ||
this.gl = null; | ||
}; | ||
}; |
@@ -146,2 +146,4 @@ /** | ||
gl.uniform1f(shader.flipY, renderSession.flipY); | ||
gl.uniformMatrix3fv(shader.translationMatrix, false, graphics.worldTransform.toArray(true)); | ||
@@ -174,2 +176,3 @@ | ||
gl.uniform1f(shader.flipY, renderSession.flipY); | ||
gl.uniform2f(shader.projectionVector, projection.x, -projection.y); | ||
@@ -176,0 +179,0 @@ gl.uniform2f(shader.offsetVector, -offset.x, -offset.y); |
@@ -359,2 +359,5 @@ /** | ||
// make sure to flip the Y if using a render texture.. | ||
this.renderSession.flipY = buffer ? -1 : 1; | ||
// set the default projection | ||
@@ -425,4 +428,14 @@ this.renderSession.projection = projection; | ||
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, texture.scaleMode === PIXI.scaleModes.LINEAR ? gl.LINEAR : gl.NEAREST); | ||
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, texture.scaleMode === PIXI.scaleModes.LINEAR ? gl.LINEAR : gl.NEAREST); | ||
if(texture.mipmap && PIXI.isPowerOfTwo(texture.width, texture.height)) | ||
{ | ||
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, texture.scaleMode === PIXI.scaleModes.LINEAR ? gl.LINEAR_MIPMAP_LINEAR : gl.NEAREST_MIPMAP_NEAREST); | ||
gl.generateMipmap(gl.TEXTURE_2D); | ||
} | ||
else | ||
{ | ||
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, texture.scaleMode === PIXI.scaleModes.LINEAR ? gl.LINEAR : gl.NEAREST); | ||
} | ||
// reguler... | ||
@@ -429,0 +442,0 @@ if(!texture._powerOf2) |
@@ -208,2 +208,6 @@ /** | ||
// used for debugging.. | ||
//this.context.fillStyle ="#FF0000" | ||
//this.context.fillRect(0, 0, this.canvas.width,this.canvas.height); | ||
this.context.font = this.style.font; | ||
@@ -378,3 +382,3 @@ this.context.strokeStyle = this.style.stroke; | ||
context.fillStyle = '#000'; | ||
context.fillText('|Mq', 0, baseline); | ||
context.fillText('|MÉq', 0, baseline); | ||
@@ -438,2 +442,4 @@ var imagedata = context.getImageData(0, 0, width, height).data; | ||
properties.descent = i - baseline; | ||
//TODO might need a tweak. kind of a temp fix! | ||
properties.descent += 6; | ||
properties.fontSize = properties.ascent + properties.descent; | ||
@@ -440,0 +446,0 @@ |
@@ -16,3 +16,3 @@ /** | ||
* @param source {String} the source object (image or canvas) | ||
* @param scaleMode {Number} Should be one of the PIXI.scaleMode consts | ||
* @param scaleMode {Number} See {{#crossLink "PIXI/scaleModes:property"}}PIXI.scaleModes{{/crossLink}} for possible values | ||
*/ | ||
@@ -51,3 +51,3 @@ PIXI.BaseTexture = function(source, scaleMode) | ||
* @property scaleMode | ||
* @type PIXI.scaleModes | ||
* @type {Number} | ||
* @default PIXI.scaleModes.LINEAR | ||
@@ -94,2 +94,12 @@ */ | ||
/** | ||
* | ||
* Set this to true if a mipmap of this texture needs to be generated. This value needs to be set before the texture is used | ||
* Also the texture must be a power of two size to work | ||
* | ||
* @property mipmap | ||
* @type {Boolean} | ||
*/ | ||
this.mipmap = false; | ||
// used for webGL texture updating... | ||
@@ -239,3 +249,3 @@ // TODO - this needs to be addressed | ||
* @param crossorigin {Boolean} | ||
* @param scaleMode {Number} Should be one of the PIXI.scaleMode consts | ||
* @param scaleMode {Number} See {{#crossLink "PIXI/scaleModes:property"}}PIXI.scaleModes{{/crossLink}} for possible values | ||
* @return BaseTexture | ||
@@ -280,3 +290,3 @@ */ | ||
* @param canvas {Canvas} The canvas element source of the texture | ||
* @param scaleMode {Number} Should be one of the PIXI.scaleMode consts | ||
* @param scaleMode {Number} See {{#crossLink "PIXI/scaleModes:property"}}PIXI.scaleModes{{/crossLink}} for possible values | ||
* @return BaseTexture | ||
@@ -283,0 +293,0 @@ */ |
@@ -32,3 +32,3 @@ /** | ||
* @param renderer {CanvasRenderer|WebGLRenderer} The renderer used for this RenderTexture | ||
* @param scaleMode {Number} Should be one of the PIXI.scaleMode consts | ||
* @param scaleMode {Number} See {{#crossLink "PIXI/scaleModes:property"}}PIXI.scaleModes{{/crossLink}} for possible values | ||
* @param resolution {Number} The resolution of the texture being generated | ||
@@ -35,0 +35,0 @@ */ |
@@ -235,3 +235,3 @@ /** | ||
* @param crossorigin {Boolean} Whether requests should be treated as crossorigin | ||
* @param scaleMode {Number} Should be one of the PIXI.scaleMode consts | ||
* @param scaleMode {Number} See {{#crossLink "PIXI/scaleModes:property"}}PIXI.scaleModes{{/crossLink}} for possible values | ||
* @return Texture | ||
@@ -274,3 +274,3 @@ */ | ||
* @param canvas {Canvas} The canvas element source of the texture | ||
* @param scaleMode {Number} Should be one of the PIXI.scaleMode consts | ||
* @param scaleMode {Number} See {{#crossLink "PIXI/scaleModes:property"}}PIXI.scaleModes{{/crossLink}} for possible values | ||
* @return Texture | ||
@@ -277,0 +277,0 @@ */ |
@@ -1,2 +0,12 @@ | ||
/** | ||
* A texture of a [playing] Video. | ||
* | ||
* See the ["deus" demo](http://www.goodboydigital.com/pixijs/examples/deus/). | ||
* | ||
* @class VideoTexture | ||
* @extends BaseTexture | ||
* @constructor | ||
* @param source {HTMLVideoElement} | ||
* @param scaleMode {Number} See {{#crossLink "PIXI/scaleModes:property"}}PIXI.scaleModes{{/crossLink}} for possible values | ||
*/ | ||
PIXI.VideoTexture = function( source, scaleMode ) | ||
@@ -86,8 +96,24 @@ { | ||
PIXI.VideoTexture.prototype.destroy = function() | ||
{ | ||
if( this.source && this.source._pixiId ) | ||
{ | ||
PIXI.BaseTextureCache[ this.source._pixiId ] = null; | ||
delete PIXI.BaseTextureCache[ this.source._pixiId ]; | ||
this.source._pixiId = null; | ||
delete this.source._pixiId; | ||
} | ||
PIXI.BaseTexture.prototype.destroy.call( this ); | ||
}; | ||
/** | ||
* Mimic Pixi BaseTexture.from.... method. | ||
* @param video | ||
* @param scaleMode | ||
* @returns {PIXI.VideoTexture} | ||
* | ||
* @static | ||
* @method baseTextureFromVideo | ||
* @param video {HTMLVideoElement} | ||
* @param scaleMode {Number} See {{#crossLink "PIXI/scaleModes:property"}}PIXI.scaleModes{{/crossLink}} for possible values | ||
* @return {VideoTexture} | ||
*/ | ||
@@ -112,22 +138,10 @@ PIXI.VideoTexture.baseTextureFromVideo = function( video, scaleMode ) | ||
PIXI.VideoTexture.prototype.destroy = function() | ||
{ | ||
if( this.source && this.source._pixiId ) | ||
{ | ||
PIXI.BaseTextureCache[ this.source._pixiId ] = null; | ||
delete PIXI.BaseTextureCache[ this.source._pixiId ]; | ||
this.source._pixiId = null; | ||
delete this.source._pixiId; | ||
} | ||
PIXI.BaseTexture.prototype.destroy.call( this ); | ||
}; | ||
/** | ||
* Mimic PIXI Texture.from... method. | ||
* @param video | ||
* @param scaleMode | ||
* @returns {PIXI.Texture} | ||
* Mimic Pixi BaseTexture.from.... method. | ||
* | ||
* @static | ||
* @method textureFromVideo | ||
* @param video {HTMLVideoElement} | ||
* @param scaleMode {Number} See {{#crossLink "PIXI/scaleModes:property"}}PIXI.scaleModes{{/crossLink}} for possible values | ||
* @return {Texture} A Texture, but not a VideoTexture. | ||
*/ | ||
@@ -140,2 +154,11 @@ PIXI.VideoTexture.textureFromVideo = function( video, scaleMode ) | ||
/** | ||
* Mimic Pixi BaseTexture.from.... method. | ||
* | ||
* @static | ||
* @method fromUrl | ||
* @param videoSrc {String} The URL for the video. | ||
* @param scaleMode {Number} See {{#crossLink "PIXI/scaleModes:property"}}PIXI.scaleModes{{/crossLink}} for possible values | ||
* @return {VideoTexture} | ||
*/ | ||
PIXI.VideoTexture.fromUrl = function( videoSrc, scaleMode ) | ||
@@ -149,2 +172,1 @@ { | ||
}; | ||
@@ -9,3 +9,5 @@ /** | ||
* the browser then this function will return a canvas renderer | ||
* @class autoDetectRenderer | ||
* | ||
* @method autoDetectRenderer | ||
* @for PIXI | ||
* @static | ||
@@ -51,3 +53,4 @@ * @param width=800 {Number} the width of the renderers view | ||
* | ||
* @class autoDetectRecommendedRenderer | ||
* @method autoDetectRecommendedRenderer | ||
* @for PIXI | ||
* @static | ||
@@ -54,0 +57,0 @@ * @param width=800 {Number} the width of the renderers view |
@@ -46,3 +46,3 @@ /** | ||
* @param eventName {String} The events that should be listed. | ||
* @returns {Array} An array of listener functions | ||
* @return {Array} An array of listener functions | ||
*/ | ||
@@ -61,3 +61,3 @@ obj.listeners = function listeners(eventName) { | ||
* @param eventName {String} The name of the event. | ||
* @returns {Boolean} Indication if we've emitted an event. | ||
* @return {Boolean} Indication if we've emitted an event. | ||
*/ | ||
@@ -64,0 +64,0 @@ obj.emit = obj.dispatchEvent = function emit(eventName, data) { |
@@ -208,1 +208,7 @@ /** | ||
}; | ||
PIXI.isPowerOfTwo = function(width, height) | ||
{ | ||
return (width > 0 && (width & (width - 1)) === 0 && height > 0 && (height & (height - 1)) === 0); | ||
}; |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
22036471
55693