LIBGDX: Star.apk
90分钟写好的一个基于libgdx的android应用,有兴趣的 下载看看,也算这段时间研究libgdx的总结吧。。。版本需要2.1及其以上版本,由于cppblog.com附件后缀上传限制,下载 Star-Android.apk.7z后,请去掉.7z后缀,再安装,程序名称为--star。别忘记android手机的触屏功能哦。。。
Mac下不知道怎么截屏,明天再上图吧~
Source Code:
Source Code:
1
/**
2 * file: StarGame.java
3 * author: codejie ([email protected])
4 * date: Jun 2, 2011 11:32:00 PM
5 */
6 package com.jie.android.gdx.star;
7
8 import com.badlogic.gdx.Game;
9 import com.badlogic.gdx.Gdx;
10 import com.badlogic.gdx.InputProcessor;
11 import com.badlogic.gdx.graphics.GL10;
12 import com.badlogic.gdx.graphics.Texture;
13 import com.badlogic.gdx.math.MathUtils;
14 import com.badlogic.gdx.scenes.scene2d.Action;
15 import com.badlogic.gdx.scenes.scene2d.OnActionCompleted;
16 import com.badlogic.gdx.scenes.scene2d.Stage;
17 import com.badlogic.gdx.scenes.scene2d.actions.FadeTo;
18 import com.badlogic.gdx.scenes.scene2d.actions.MoveTo;
19 import com.badlogic.gdx.scenes.scene2d.actions.Parallel;
20 import com.badlogic.gdx.scenes.scene2d.actions.RotateTo;
21 import com.badlogic.gdx.scenes.scene2d.actions.ScaleTo;
22 import com.badlogic.gdx.scenes.scene2d.actors.Image;
23
24 public class StarGame extends Game implements InputProcessor {
25
26 /* (non-Javadoc)
27 * @see com.badlogic.gdx.ApplicationListener#create()
28 */
29
30 private Stage stage = null ;
31 private Texture ballTexture = null ;
32 private Texture starTexture = null ;
33
34 @Override
35 public void create() {
36 // TODO Auto-generated method stub
37 stage = new Stage( 480 , 800 , true );
38
39 ballTexture = new Texture(Gdx.files.internal( " data/ball.png " ));
40 starTexture = new Texture(Gdx.files.internal( " data/star.png " ));
41
42 Gdx.input.setInputProcessor( this );
43 }
44
45 private void makeStar( boolean star, int x, int y, int size) {
46 Image img = null ;
47
48 if (star == true ) {
49 img = new Image( " star " , starTexture);
50 }
51 else {
52 img = new Image( " ball " , ballTexture);
53 if (size > 24 )
54 size -= 24 ;
55 }
56 img.x = x;
57 img.y = y;
58 img.width = size;
59 img.height = size;
60
61 this .addAction(img);
62
63 stage.addActor(img);
64 }
65
66 private void addAction( final Image img) {
67
68 int duration = MathUtils.random( 3 , 60 );
69 MoveTo moveto = MoveTo.$(img.x, 800 , duration);
70 moveto.setCompletionListener( new OnActionCompleted() {
71 public void completed(Action action) {
72 stage.removeActor(img);
73 }
74 });
75
76 int rotate = MathUtils.random( 360 );
77 float scale = MathUtils.random( 0.5f , 2.0f );
78 float fade = MathUtils.random( 1.0f );
79 Action action = Parallel.$(
80 moveto,
81 ScaleTo.$(scale, scale, duration),
82 RotateTo.$(rotate, duration),
83 FadeTo.$(fade, duration)
84 );
85
86 img.action(action);
87 }
88
89 public void render() {
90 Gdx.gl.glClearColor( 0 , 0 , 0 , 0 );
91 Gdx.graphics.getGL10().glClear(GL10.GL_COLOR_BUFFER_BIT);
92
93 float delta = Gdx.graphics.getDeltaTime();
94
95 int roll = ( int )(delta * 1000000 );
96 if (roll % 15 == 0 ) {
97 makeStar(MathUtils.randomBoolean(), MathUtils.random( 0 , 480 ), MathUtils.random( 0 , 64 ), MathUtils.random( 10 , 64 ));
98 }
99
100 stage.act(delta);
101 stage.draw();
102 }
103
104 public void dispose() {
105 stage.dispose();
106 ballTexture.dispose();
107 starTexture.dispose();
108 }
109
110
111 /* (non-Javadoc)
112 * @see com.badlogic.gdx.InputProcessor#keyDown(int)
113 */
114 @Override
115 public boolean keyDown( int arg0) {
116 // TODO Auto-generated method stub
117 return false ;
118 }
119
120 /* (non-Javadoc)
121 * @see com.badlogic.gdx.InputProcessor#keyTyped(char)
122 */
123 @Override
124 public boolean keyTyped( char arg0) {
125 // TODO Auto-generated method stub
126 return false ;
127 }
128
129 /* (non-Javadoc)
130 * @see com.badlogic.gdx.InputProcessor#keyUp(int)
131 */
132 @Override
133 public boolean keyUp( int arg0) {
134 // TODO Auto-generated method stub
135 return false ;
136 }
137
138 /* (non-Javadoc)
139 * @see com.badlogic.gdx.InputProcessor#scrolled(int)
140 */
141 @Override
142 public boolean scrolled( int arg0) {
143 // TODO Auto-generated method stub
144 return false ;
145 }
146
147 /* (non-Javadoc)
148 * @see com.badlogic.gdx.InputProcessor#touchDown(int, int, int, int)
149 */
150 @Override
151 public boolean touchDown( int arg0, int arg1, int arg2, int arg3) {
152 // TODO Auto-generated method stub
153 return false ;
154 }
155
156 /* (non-Javadoc)
157 * @see com.badlogic.gdx.InputProcessor#touchDragged(int, int, int)
158 */
159 @Override
160 public boolean touchDragged( int arg0, int arg1, int arg2) {
161 // TODO Auto-generated method stub
162
163 makeStar(MathUtils.randomBoolean(), arg0, 800 - arg1, MathUtils.random( 10 , 64 ));
164
165 return false ;
166 }
167
168 /* (non-Javadoc)
169 * @see com.badlogic.gdx.InputProcessor#touchMoved(int, int)
170 */
171 @Override
172 public boolean touchMoved( int arg0, int arg1) {
173 // TODO Auto-generated method stub
174 return false ;
175 }
176
177 /* (non-Javadoc)
178 * @see com.badlogic.gdx.InputProcessor#touchUp(int, int, int, int)
179 */
180 @Override
181 public boolean touchUp( int arg0, int arg1, int arg2, int arg3) {
182 // TODO Auto-generated method stub
183 return false ;
184 }
185
186 }
187
2 * file: StarGame.java
3 * author: codejie ([email protected])
4 * date: Jun 2, 2011 11:32:00 PM
5 */
6 package com.jie.android.gdx.star;
7
8 import com.badlogic.gdx.Game;
9 import com.badlogic.gdx.Gdx;
10 import com.badlogic.gdx.InputProcessor;
11 import com.badlogic.gdx.graphics.GL10;
12 import com.badlogic.gdx.graphics.Texture;
13 import com.badlogic.gdx.math.MathUtils;
14 import com.badlogic.gdx.scenes.scene2d.Action;
15 import com.badlogic.gdx.scenes.scene2d.OnActionCompleted;
16 import com.badlogic.gdx.scenes.scene2d.Stage;
17 import com.badlogic.gdx.scenes.scene2d.actions.FadeTo;
18 import com.badlogic.gdx.scenes.scene2d.actions.MoveTo;
19 import com.badlogic.gdx.scenes.scene2d.actions.Parallel;
20 import com.badlogic.gdx.scenes.scene2d.actions.RotateTo;
21 import com.badlogic.gdx.scenes.scene2d.actions.ScaleTo;
22 import com.badlogic.gdx.scenes.scene2d.actors.Image;
23
24 public class StarGame extends Game implements InputProcessor {
25
26 /* (non-Javadoc)
27 * @see com.badlogic.gdx.ApplicationListener#create()
28 */
29
30 private Stage stage = null ;
31 private Texture ballTexture = null ;
32 private Texture starTexture = null ;
33
34 @Override
35 public void create() {
36 // TODO Auto-generated method stub
37 stage = new Stage( 480 , 800 , true );
38
39 ballTexture = new Texture(Gdx.files.internal( " data/ball.png " ));
40 starTexture = new Texture(Gdx.files.internal( " data/star.png " ));
41
42 Gdx.input.setInputProcessor( this );
43 }
44
45 private void makeStar( boolean star, int x, int y, int size) {
46 Image img = null ;
47
48 if (star == true ) {
49 img = new Image( " star " , starTexture);
50 }
51 else {
52 img = new Image( " ball " , ballTexture);
53 if (size > 24 )
54 size -= 24 ;
55 }
56 img.x = x;
57 img.y = y;
58 img.width = size;
59 img.height = size;
60
61 this .addAction(img);
62
63 stage.addActor(img);
64 }
65
66 private void addAction( final Image img) {
67
68 int duration = MathUtils.random( 3 , 60 );
69 MoveTo moveto = MoveTo.$(img.x, 800 , duration);
70 moveto.setCompletionListener( new OnActionCompleted() {
71 public void completed(Action action) {
72 stage.removeActor(img);
73 }
74 });
75
76 int rotate = MathUtils.random( 360 );
77 float scale = MathUtils.random( 0.5f , 2.0f );
78 float fade = MathUtils.random( 1.0f );
79 Action action = Parallel.$(
80 moveto,
81 ScaleTo.$(scale, scale, duration),
82 RotateTo.$(rotate, duration),
83 FadeTo.$(fade, duration)
84 );
85
86 img.action(action);
87 }
88
89 public void render() {
90 Gdx.gl.glClearColor( 0 , 0 , 0 , 0 );
91 Gdx.graphics.getGL10().glClear(GL10.GL_COLOR_BUFFER_BIT);
92
93 float delta = Gdx.graphics.getDeltaTime();
94
95 int roll = ( int )(delta * 1000000 );
96 if (roll % 15 == 0 ) {
97 makeStar(MathUtils.randomBoolean(), MathUtils.random( 0 , 480 ), MathUtils.random( 0 , 64 ), MathUtils.random( 10 , 64 ));
98 }
99
100 stage.act(delta);
101 stage.draw();
102 }
103
104 public void dispose() {
105 stage.dispose();
106 ballTexture.dispose();
107 starTexture.dispose();
108 }
109
110
111 /* (non-Javadoc)
112 * @see com.badlogic.gdx.InputProcessor#keyDown(int)
113 */
114 @Override
115 public boolean keyDown( int arg0) {
116 // TODO Auto-generated method stub
117 return false ;
118 }
119
120 /* (non-Javadoc)
121 * @see com.badlogic.gdx.InputProcessor#keyTyped(char)
122 */
123 @Override
124 public boolean keyTyped( char arg0) {
125 // TODO Auto-generated method stub
126 return false ;
127 }
128
129 /* (non-Javadoc)
130 * @see com.badlogic.gdx.InputProcessor#keyUp(int)
131 */
132 @Override
133 public boolean keyUp( int arg0) {
134 // TODO Auto-generated method stub
135 return false ;
136 }
137
138 /* (non-Javadoc)
139 * @see com.badlogic.gdx.InputProcessor#scrolled(int)
140 */
141 @Override
142 public boolean scrolled( int arg0) {
143 // TODO Auto-generated method stub
144 return false ;
145 }
146
147 /* (non-Javadoc)
148 * @see com.badlogic.gdx.InputProcessor#touchDown(int, int, int, int)
149 */
150 @Override
151 public boolean touchDown( int arg0, int arg1, int arg2, int arg3) {
152 // TODO Auto-generated method stub
153 return false ;
154 }
155
156 /* (non-Javadoc)
157 * @see com.badlogic.gdx.InputProcessor#touchDragged(int, int, int)
158 */
159 @Override
160 public boolean touchDragged( int arg0, int arg1, int arg2) {
161 // TODO Auto-generated method stub
162
163 makeStar(MathUtils.randomBoolean(), arg0, 800 - arg1, MathUtils.random( 10 , 64 ));
164
165 return false ;
166 }
167
168 /* (non-Javadoc)
169 * @see com.badlogic.gdx.InputProcessor#touchMoved(int, int)
170 */
171 @Override
172 public boolean touchMoved( int arg0, int arg1) {
173 // TODO Auto-generated method stub
174 return false ;
175 }
176
177 /* (non-Javadoc)
178 * @see com.badlogic.gdx.InputProcessor#touchUp(int, int, int, int)
179 */
180 @Override
181 public boolean touchUp( int arg0, int arg1, int arg2, int arg3) {
182 // TODO Auto-generated method stub
183 return false ;
184 }
185
186 }
187