1/*******************************************************************************
2 * Copyright 2011 See AUTHORS file.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 *   http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 ******************************************************************************/
16
17package com.badlogic.gdx.tests;
18
19import static com.badlogic.gdx.scenes.scene2d.actions.Actions.moveBy;
20import static com.badlogic.gdx.scenes.scene2d.actions.Actions.parallel;
21import static com.badlogic.gdx.scenes.scene2d.actions.Actions.sequence;
22
23import com.badlogic.gdx.Gdx;
24import com.badlogic.gdx.graphics.GL20;
25import com.badlogic.gdx.graphics.Texture;
26import com.badlogic.gdx.graphics.Texture.TextureFilter;
27import com.badlogic.gdx.graphics.g2d.TextureRegion;
28import com.badlogic.gdx.scenes.scene2d.Stage;
29import com.badlogic.gdx.scenes.scene2d.actions.Actions;
30import com.badlogic.gdx.scenes.scene2d.ui.Image;
31import com.badlogic.gdx.tests.utils.GdxTest;
32
33public class ActionSequenceTest extends GdxTest implements Runnable {
34
35	Image img;
36	Image img2;
37	Image img3;
38	Stage stage;
39	Texture texture;
40
41	@Override
42	public void create () {
43		stage = new Stage();
44		texture = new Texture(Gdx.files.internal("data/badlogic.jpg"), false);
45		texture.setFilter(TextureFilter.Linear, TextureFilter.Linear);
46		img = new Image(new TextureRegion(texture));
47		img.setSize(100, 100);
48		img.setOrigin(50, 50);
49		img.setPosition(100, 100);
50
51		img2 = new Image(new TextureRegion(texture));
52		img2.setSize(100, 100);
53		img2.setOrigin(50, 50);
54		img2.setPosition(100, 100);
55
56		img3 = new Image(new TextureRegion(texture));
57		img3.setSize(100, 100);
58		img3.setOrigin(50, 50);
59		img3.setPosition(100, 100);
60
61		stage.addActor(img);
62		stage.addActor(img2);
63		stage.addActor(img3);
64
65		img.addAction(sequence());
66		img2.addAction(parallel(sequence(), moveBy(100, 0, 1)));
67		img3.addAction(sequence(parallel(moveBy(100, 200, 2)), Actions.run(this)));
68	}
69
70	@Override
71	public void render () {
72		Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
73
74		stage.act(Math.min(Gdx.graphics.getDeltaTime(), 1 / 30f));
75		stage.draw();
76	}
77
78	@Override
79	public void run () {
80		System.out.println("completed");
81	}
82
83	@Override
84	public void dispose () {
85		stage.dispose();
86		texture.dispose();
87	}
88}
89