|
@@ -1,137 +0,0 @@
|
|
|
-/******************************************************************************
|
|
|
- * Spine Runtimes Software License v2.5
|
|
|
- *
|
|
|
- * Copyright (c) 2013-2016, Esoteric Software
|
|
|
- * All rights reserved.
|
|
|
- *
|
|
|
- * You are granted a perpetual, non-exclusive, non-sublicensable, and
|
|
|
- * non-transferable license to use, install, execute, and perform the Spine
|
|
|
- * Runtimes software and derivative works solely for personal or internal
|
|
|
- * use. Without the written permission of Esoteric Software (see Section 2 of
|
|
|
- * the Spine Software License Agreement), you may not (a) modify, translate,
|
|
|
- * adapt, or develop new applications using the Spine Runtimes or otherwise
|
|
|
- * create derivative works or improvements of the Spine Runtimes or (b) remove,
|
|
|
- * delete, alter, or obscure any trademarks or any copyright, trademark, patent,
|
|
|
- * or other intellectual property or proprietary rights notices on or in the
|
|
|
- * Software, including any copy thereof. Redistributions in binary or source
|
|
|
- * form must include this license and terms.
|
|
|
- *
|
|
|
- * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE "AS IS" AND ANY EXPRESS OR
|
|
|
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
|
|
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
|
|
|
- * EVENT SHALL ESOTERIC SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
|
|
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
|
|
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, BUSINESS INTERRUPTION, OR LOSS OF
|
|
|
- * USE, DATA, OR PROFITS) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
|
|
|
- * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
|
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
|
- * POSSIBILITY OF SUCH DAMAGE.
|
|
|
- *****************************************************************************/
|
|
|
-
|
|
|
-package com.esotericsoftware.spine;
|
|
|
-
|
|
|
-import com.badlogic.gdx.ApplicationAdapter;
|
|
|
-import com.badlogic.gdx.Gdx;
|
|
|
-import com.badlogic.gdx.backends.lwjgl.LwjglApplication;
|
|
|
-import com.badlogic.gdx.backends.lwjgl.LwjglApplicationConfiguration;
|
|
|
-import com.badlogic.gdx.graphics.GL20;
|
|
|
-import com.badlogic.gdx.graphics.OrthographicCamera;
|
|
|
-import com.badlogic.gdx.graphics.g2d.PolygonSpriteBatch;
|
|
|
-import com.badlogic.gdx.graphics.g2d.TextureAtlas;
|
|
|
-
|
|
|
-/**
|
|
|
- * Sandbox for comparing values when porting to other
|
|
|
- * runtimes.
|
|
|
- */
|
|
|
-public class Sandbox extends ApplicationAdapter {
|
|
|
- static final String ATLAS = "../../examples/raptor/export/raptor.atlas";
|
|
|
- static final String JSON = "../../examples/raptor/export/raptor.json";
|
|
|
- static final float scale = 0.5f;
|
|
|
- static final float X = 0;
|
|
|
- static final float Y = 0;
|
|
|
- static final String ANIMATION = "walk";
|
|
|
- static final float ANIMATION_OFFSET = 0.0f;
|
|
|
- static final boolean ANIMATION_UPDATE = true;
|
|
|
- static final boolean Y_DOWN = false;
|
|
|
- static final boolean DRAW_DEBUG = false;
|
|
|
-
|
|
|
- OrthographicCamera camera;
|
|
|
- PolygonSpriteBatch batch;
|
|
|
- SkeletonMeshRenderer renderer;
|
|
|
- SkeletonRendererDebug debugRenderer;
|
|
|
-
|
|
|
- TextureAtlas atlas;
|
|
|
- Skeleton skeleton;
|
|
|
- AnimationState state;
|
|
|
-
|
|
|
- public void create () {
|
|
|
- camera = new OrthographicCamera();
|
|
|
- camera.setToOrtho(Y_DOWN);
|
|
|
- batch = new PolygonSpriteBatch();
|
|
|
- renderer = new SkeletonMeshRenderer();
|
|
|
- renderer.setPremultipliedAlpha(false);
|
|
|
- debugRenderer = new SkeletonRendererDebug();
|
|
|
- debugRenderer.setBoundingBoxes(false);
|
|
|
- debugRenderer.setRegionAttachments(false);
|
|
|
-
|
|
|
- atlas = new TextureAtlas(Gdx.files.internal(ATLAS));
|
|
|
- SkeletonJson json = new SkeletonJson(atlas);
|
|
|
- json.setScale(scale);
|
|
|
- SkeletonData skeletonData = json.readSkeletonData(Gdx.files.internal(JSON));
|
|
|
-
|
|
|
- skeleton = new Skeleton(skeletonData);
|
|
|
- skeleton.setFlipY(Y_DOWN);
|
|
|
- skeleton.setPosition(X, Y);
|
|
|
-
|
|
|
- AnimationStateData stateData = new AnimationStateData(skeletonData);
|
|
|
- state = new AnimationState(stateData);
|
|
|
- if (ANIMATION != null) {
|
|
|
- stateData.setMix("walk", "Jump", 0.5f);
|
|
|
- state.setAnimation(0, ANIMATION, true);
|
|
|
- state.addAnimation(0, "Jump", false, 0);
|
|
|
- }
|
|
|
- if (ANIMATION_OFFSET != 0) {
|
|
|
- state.update(ANIMATION_OFFSET);
|
|
|
- state.apply(skeleton);
|
|
|
- skeleton.updateWorldTransform();
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- public void render () {
|
|
|
- Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
|
|
|
-
|
|
|
- if (ANIMATION_UPDATE) {
|
|
|
- float delta = Gdx.graphics.getDeltaTime();
|
|
|
- delta = 0.016f;
|
|
|
- state.update(delta);
|
|
|
- state.apply(skeleton);
|
|
|
- }
|
|
|
- skeleton.updateWorldTransform();
|
|
|
-
|
|
|
- camera.update();
|
|
|
- batch.getProjectionMatrix().set(camera.combined);
|
|
|
- debugRenderer.getShapeRenderer().setProjectionMatrix(camera.combined);
|
|
|
-
|
|
|
- batch.begin();
|
|
|
- renderer.draw(batch, skeleton);
|
|
|
- batch.end();
|
|
|
-
|
|
|
- if (DRAW_DEBUG) debugRenderer.draw(skeleton);
|
|
|
- }
|
|
|
-
|
|
|
- public void resize (int width, int height) {
|
|
|
- camera.setToOrtho(Y_DOWN);
|
|
|
- }
|
|
|
-
|
|
|
- public void dispose () {
|
|
|
- atlas.dispose();
|
|
|
- }
|
|
|
-
|
|
|
- public static void main (String[] args) throws Exception {
|
|
|
- LwjglApplicationConfiguration config = new LwjglApplicationConfiguration();
|
|
|
- config.useHDPI = true;
|
|
|
- config.width = 800;
|
|
|
- config.height = 600;
|
|
|
- new LwjglApplication(new Sandbox(), config);
|
|
|
- }
|
|
|
-}
|