[libgdx] Fixed frame-by-frame test, added PNG export to spineboy example.

This commit is contained in:
Nathan Sweet 2022-05-01 11:29:29 -04:00
parent d0770a99cb
commit 58ac2fa67e
7 changed files with 212 additions and 14 deletions

View File

@ -16,7 +16,7 @@ fi
echo "Spine exe: $SPINE_EXE"
if [ "$#" -eq 0 ]; then
echo "Enter the Spine editor version to use for the export (eg 3.8.99):"
echo "Enter the Spine editor version to use for the export (eg 4.1.xx):"
read version
else
version=${1%/}
@ -100,6 +100,7 @@ echo "Exporting assets..."
-i ../spineboy/spineboy-ess.spine -o ../spineboy/export -e binary.json \
-i ../spineboy/spineboy-pro.spine -o ../spineboy/export -e json.json \
-i ../spineboy/spineboy-pro.spine -o ../spineboy/export -e binary.json \
-i ../spineboy/spineboy-pro.spine -o ../spineboy/export/spineboy-run.atlas -e png-0.5-frame-by-frame.json \
-i ../spineboy/images -o ../spineboy/export -n spineboy -p atlas-0.5.json \
-i ../spineboy/images -o ../spineboy/export -n spineboy-pma -p atlas-0.5-pma.json \
\

View File

@ -0,0 +1,87 @@
{
"class": "export-png",
"exportType": "animation",
"skeletonType": "single",
"skeleton": "spineboy-pro",
"animationType": "single",
"animation": "run",
"skinType": "current",
"skinNone": false,
"skin": null,
"maxBounds": false,
"renderImages": true,
"renderBones": false,
"renderOthers": false,
"scale": 50,
"fitWidth": 0,
"fitHeight": 0,
"enlarge": false,
"background": null,
"fps": 15,
"lastFrame": false,
"cropWidth": 0,
"cropHeight": 0,
"rangeStart": -1,
"rangeEnd": -1,
"packAtlas": {
"stripWhitespaceX": true,
"stripWhitespaceY": true,
"rotation": true,
"alias": true,
"ignoreBlankImages": false,
"alphaThreshold": 3,
"minWidth": 16,
"minHeight": 16,
"maxWidth": 2048,
"maxHeight": 2048,
"pot": false,
"multipleOfFour": false,
"square": false,
"outputFormat": "png",
"jpegQuality": 0.9,
"premultiplyAlpha": true,
"bleed": false,
"scale": [ 1 ],
"scaleSuffix": [ "" ],
"scaleResampling": [ "bicubic" ],
"paddingX": 2,
"paddingY": 2,
"edgePadding": true,
"duplicatePadding": false,
"filterMin": "Linear",
"filterMag": "Linear",
"wrapX": "ClampToEdge",
"wrapY": "ClampToEdge",
"format": "RGBA8888",
"atlasExtension": ".atlas",
"combineSubdirectories": false,
"flattenPaths": false,
"useIndexes": true,
"debug": false,
"fast": false,
"limitMemory": true,
"currentProject": true,
"packing": "rectangles",
"prettyPrint": true,
"legacyOutput": false,
"webp": null,
"bleedIterations": 2,
"ignore": false,
"separator": "_",
"silent": false
},
"compression": 9,
"bruteForce": true,
"quantize": true,
"quality": 100,
"speed": 1,
"dither": 0,
"maxColors": 256,
"pad": false,
"msaa": 4,
"smoothing": 8,
"renderSelection": false,
"cropX": 0,
"cropY": 0,
"open": false
}

View File

@ -0,0 +1,60 @@
spineboy-run.png
size: 1181, 687
filter: Linear, Linear
pma: true
spineboy-pro-run
index: 8
bounds: 2, 371, 303, 314
offsets: 11, 22, 316, 341
origin: 142, 3
spineboy-pro-run
index: 9
bounds: 2, 44, 278, 325
offsets: 30, 2, 316, 341
origin: 142, 3
spineboy-pro-run
index: 0
bounds: 307, 439, 246, 320
offsets: 67, 1, 316, 341
rotate: 90
origin: 142, 3
spineboy-pro-run
index: 3
bounds: 629, 443, 242, 320
offsets: 12, 20, 316, 341
rotate: 90
origin: 142, 3
spineboy-pro-run
index: 7
bounds: 951, 389, 228, 296
offsets: 36, 33, 316, 341
origin: 142, 3
spineboy-pro-run
index: 4
bounds: 307, 195, 242, 320
offsets: 2, 4, 316, 341
rotate: 90
origin: 142, 3
spineboy-pro-run
index: 5
bounds: 629, 200, 241, 316
offsets: 8, 3, 316, 341
rotate: 90
origin: 142, 3
spineboy-pro-run
index: 1
bounds: 282, 2, 191, 318
offsets: 70, 3, 316, 341
rotate: 90
origin: 142, 3
spineboy-pro-run
index: 2
bounds: 947, 81, 226, 306
offsets: 34, 26, 316, 341
origin: 142, 3
spineboy-pro-run
index: 6
bounds: 629, 4, 194, 316
offsets: 68, 4, 316, 341
rotate: 90
origin: 142, 3

Binary file not shown.

After

Width:  |  Height:  |  Size: 336 KiB

View File

@ -0,0 +1,60 @@
spineboy-run.png
size: 1181, 687
filter: Linear, Linear
pma: true
spineboy-pro-run
index: 8
bounds: 2, 371, 303, 314
offsets: 11, 22, 316, 341
origin: 142, 3
spineboy-pro-run
index: 9
bounds: 2, 44, 278, 325
offsets: 30, 2, 316, 341
origin: 142, 3
spineboy-pro-run
index: 0
bounds: 307, 439, 246, 320
offsets: 67, 1, 316, 341
rotate: 90
origin: 142, 3
spineboy-pro-run
index: 3
bounds: 629, 443, 242, 320
offsets: 12, 20, 316, 341
rotate: 90
origin: 142, 3
spineboy-pro-run
index: 7
bounds: 951, 389, 228, 296
offsets: 36, 33, 316, 341
origin: 142, 3
spineboy-pro-run
index: 4
bounds: 307, 195, 242, 320
offsets: 2, 4, 316, 341
rotate: 90
origin: 142, 3
spineboy-pro-run
index: 5
bounds: 629, 200, 241, 316
offsets: 8, 3, 316, 341
rotate: 90
origin: 142, 3
spineboy-pro-run
index: 1
bounds: 282, 2, 191, 318
offsets: 70, 3, 316, 341
rotate: 90
origin: 142, 3
spineboy-pro-run
index: 2
bounds: 947, 81, 226, 306
offsets: 34, 26, 316, 341
origin: 142, 3
spineboy-pro-run
index: 6
bounds: 629, 4, 194, 316
offsets: 68, 4, 316, 341
rotate: 90
origin: 142, 3

Binary file not shown.

After

Width:  |  Height:  |  Size: 336 KiB

View File

@ -46,32 +46,22 @@ public class FrameByFrameTest extends ApplicationAdapter {
TextureAtlas atlas;
float time;
Animation<AtlasSprite> walkAnimation, deathAnimation, current;
Animation<AtlasSprite> walkAnimation, current;
public void create () {
camera = new OrthographicCamera();
batch = new PolygonSpriteBatch();
atlas = new TextureAtlas("spineboy/frame-by-frame.atlas");
atlas = new TextureAtlas("spineboy/spineboy-run.atlas");
walkAnimation = new Animation(1 / 20f, atlas.createSprites("spineboy-pro-walk"));
walkAnimation = new Animation(1 / 15f, atlas.createSprites("spineboy-pro-run"));
walkAnimation.setPlayMode(PlayMode.LOOP);
deathAnimation = new Animation(1 / 20f, atlas.createSprites("spineboy-pro-death"));
current = walkAnimation;
}
public void render () {
time += Gdx.graphics.getDeltaTime();
if (current == deathAnimation && current.isAnimationFinished(time)) {
current = walkAnimation;
time = 0;
}
if (Gdx.input.justTouched()) {
current = deathAnimation;
time = 0;
}
AtlasSprite frame = current.getKeyFrame(time);
float x = Math.round(Gdx.graphics.getWidth() / 2), y = 25;