您的位置:首页 > 移动开发 > Android开发

利用libgdx开发Android游戏(一)

2012-12-24 17:14 369 查看
环境配置

(1)首先下载Android SDK,下载地址为:http://deveoper.android.com/sdk/index.html,下载完成之后,解压缩,得到一个文件夹adt-bundle-linux-x86,包含eclipse和sdk,打开eclipse,在联网的情况下,选中"Android SDK Manager"按钮,更新SDK。

(2)下载libgdx,下载地址为:http://code.google.com/p/libgdx/downloads/list,选中最新版下载即可。下载完成之后,解压缩可以得到一个libgdx文件夹,里面包含libgdx所需的一些jar文件。

(3)新建一Android工程,将libgdx文件夹下的gdx.jar、gdx-backend-android.jar、armeabi、armeabi-v7a拷贝工程的libs文件夹下,如不存在libs文件夹,可以新建一个。然后在工程上单击右键,选中Build Path->Configure Build Path,Libraries下选择Add JARS,将gdx-backend-android.jar和gdx.jar添加到工程中。



(4)编写一个例子,测试一下搭建环境。

FirstGame类代码如下:

package com.game.basic;

import com.badlogic.gdx.ApplicationListener;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.GL10;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;

public class FirstGame implements ApplicationListener {

private SpriteBatch batch;

@Override
public void create() {
// TODO Auto-generated method stub
batch = new SpriteBatch();
}

@Override
public void dispose() {
// TODO Auto-generated method stub

}

@Override
public void pause() {
// TODO Auto-generated method stub

}

@Override
public void render() {
// TODO Auto-generated method stub
Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);// 清屏
batch.begin();
batch.end();
}

@Override
public void resize(int arg0, int arg1) {
// TODO Auto-generated method stub

}

@Override
public void resume() {
// TODO Auto-generated method stub

}

}

MainActivity类代码如下:
package com.game.basic;

import com.badlogic.gdx.backends.android.AndroidApplication;

import android.os.Bundle;
import android.view.Menu;

public class MainActivity extends AndroidApplication {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initialize(new FirstGame(),false);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}

}
(5)运行,效果为一黑屏。

下面让app显示一张图片,截取一张大小为2的幂的图片,比如,512*512的jpg格式图片,将其拷贝到工程目录下的assets下,因为assets本身就是用来存放资源的,而且其中的内容并不会在R文件中生成对应的ID,因此比较适合存放图片。接下来修改FirstGame类代码如下:
package com.game.basic;

import com.badlogic.gdx.ApplicationListener;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.GL10;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;

public class FirstGame implements ApplicationListener {

private SpriteBatch batch;
private Texture texture;
@Override
public void create() {
// TODO Auto-generated method stub
batch = new SpriteBatch();
texture = new Texture(Gdx.files.internal("image.jpg"));
}

@Override
public void dispose() {
// TODO Auto-generated method stub
batch.dispose();
texture.dispose();
}

@Override
public void pause() {
// TODO Auto-generated method stub

}

@Override
public void render() {
// TODO Auto-generated method stub
Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);// 清屏
batch.begin();
batch.draw(texture,200,200);
batch.end();
}

@Override
public void resize(int arg0, int arg1) {
// TODO Auto-generated method stub

}

@Override
public void resume() {
// TODO Auto-generated method stub

}

}
运行,效果如下:



最后让程序界面上显示一行文字:Read the fucking code!
FristGame修改如下:

package com.game.basic;
import com.badlogic.gdx.ApplicationListener;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.GL10;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;

public class FirstGame implements ApplicationListener {
  private SpriteBatch batch;
 // private Texture texture;
  private BitmapFont bf;
public void create()
{
  batch = new SpriteBatch();
 // texture = new Texture(Gdx.files.internal("image.jpg"));
  bf = new BitmapFont();
}
public void dispose()
{
  batch.dispose();
  bf.dispose();
 // texture.dispose();
}
public void pause() {
}

public void render() {
  Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);// 清屏
  Gdx.gl.glClearColor(1f,1f,1f,0f);
  batch.begin();
 // batch.draw(texture,200,200);
  bf.draw(batch,"Read the fucking code!",Gdx.graphics.getWidth()/2,Gdx.graphics.getHight()/2);
  batch.end();
}
public void resize(int arg0, int arg1) {
}
public void resume() {
}
}
程序运行后,效果如下:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐