/*******************************************************************************
* Copyright 2011 See AUTHORS file.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
******************************************************************************/
package com.badlogic.gdx.tests;
import static com.badlogic.gdx.scenes.scene2d.actions.Actions.*;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.GL20;
import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.graphics.g2d.Batch;
import com.badlogic.gdx.graphics.g2d.TextureRegion;
import com.badlogic.gdx.scenes.scene2d.Actor;
import com.badlogic.gdx.scenes.scene2d.Group;
import com.badlogic.gdx.scenes.scene2d.Stage;
import com.badlogic.gdx.scenes.scene2d.ui.Skin;
import com.badlogic.gdx.scenes.scene2d.ui.Table;
import com.badlogic.gdx.scenes.scene2d.ui.TextButton;
import com.badlogic.gdx.tests.utils.GdxTest;
/** @author Daniel Holderbaum */
public class StageDebugTest extends GdxTest {
static TextureRegion textureRegion;
private Stage stage;
private Stage stage1;
private Stage stage2;
class DebugActor extends Actor {
@Override
public void draw (Batch batch, float parentAlpha) {
batch.draw(textureRegion, getX(), getY(), getOriginX(), getOriginY(), getWidth(), getHeight(), getScaleX(), getScaleY(),
getRotation());
}
}
@Override
public void create () {
textureRegion = new TextureRegion(new Texture("data/badlogic.jpg"));
Gdx.input.setInputProcessor(this);
stage1 = new Stage();
stage1.getCamera().position.set(100, 100, 0);
Group group = new Group();
// group.setBounds(0, 0, 10, 10);
// group.setOrigin(25, 50);
group.setRotation(10);
group.setScale(1.2f);
stage1.addActor(group);
DebugActor actor = new DebugActor();
actor.setBounds(300, 140, 50, 100);
actor.setOrigin(25, 50);
actor.setRotation(-45);
actor.setScale(2f);
actor.addAction(forever(rotateBy(360, 8f)));
group.addActor(actor);
group.debugAll();
stage2 = new Stage();
Skin skin = new Skin(Gdx.files.internal("data/uiskin.json"));
TextButton shortButton = new TextButton("Button short", skin);
shortButton.debug();
TextButton longButton = new TextButton("Button loooooooooong", skin);
longButton.debug();
Table root = new Table(skin);
root.setFillParent(true);
root.setBackground(skin.getDrawable("default-pane"));
root.defaults().space(6);
root.setTransform(true);
root.rotateBy(10);
root.setScale(1.3f, 1);
root.debug();
stage2.addActor(root);
root.add(shortButton).pad(5);
root.add(longButton).row();
root.add("Colspan").colspan(2).row();
switchStage();
}
@Override
public void render () {
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT | GL20.GL_DEPTH_BUFFER_BIT);
stage.act();
stage.draw();
}
@Override
public boolean touchDown (int screenX, int screenY, int pointer, int button) {
switchStage();
return false;
}
@Override
public void resize (int width, int height) {
stage1.getViewport().update(width, height, true);
stage2.getViewport().update(width, height, true);
}
private void switchStage () {
if (stage != stage2) {
stage = stage2;
} else {
stage = stage1;
}
}
}