mirror of
https://github.com/EsotericSoftware/spine-runtimes.git
synced 2026-02-13 02:28:44 +08:00
Moved Sandbox to internal source control.
This commit is contained in:
parent
a8d226b927
commit
b743a27e71
@ -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);
|
||||
}
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user