利用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添加到工程中。
![](http://images.cnitblog.com/blog/480331/201212/24170938-a50de08be0ac48d1929d59ece1fe924c.png)
(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
}
}
运行,效果如下:
![](http://images.cnitblog.com/blog/480331/201212/24203536-59ab7d26b6e845c788d7d1d1b5939687.png)
最后让程序界面上显示一行文字: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() {
}
}
程序运行后,效果如下:
(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添加到工程中。
![](http://images.cnitblog.com/blog/480331/201212/24170938-a50de08be0ac48d1929d59ece1fe924c.png)
(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
}
}
运行,效果如下:
![](http://images.cnitblog.com/blog/480331/201212/24203536-59ab7d26b6e845c788d7d1d1b5939687.png)
最后让程序界面上显示一行文字: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() {
}
}
程序运行后,效果如下:
![](http://images.cnitblog.com/blog/480331/201212/24205424-2b9bae43beeb4488bc1c30c10b4378dc.png)
相关文章推荐
- 利用libgdx开发Android游戏(二)
- android游戏开发框架libgdx的使用(二十二)—利用TABLELAYOUT进行布局
- 利用libgdx开发Android游戏(三)
- 【Android游戏开发十八】解放手指,利用传感器开发游戏!(本文讲解在SurfaceView中用重力传感器控制圆球的各方向移动)
- android游戏开发框架libgdx的使用(十一)—Skin和UI配置文件的使用
- android游戏开发框架libgdx的使用(十二)—TiledMap地图的使用
- 【Android LibGDX游戏引擎开发教程】第01期:LibGDX的详细介绍
- android游戏开发框架libgdx的使用(一)--环境搭建
- android游戏开发框架libgdx的使用(五)--舞台和常用UI类
- android游戏开发框架libgdx的使用(十八)—资源加载管理AssetManager的使用
- 【Android游戏开发十六】Android Gesture之【触摸屏手势识别】操作!利用触摸屏手势实现一个简单切换图片的功能!
- android游戏开发框架libgdx的使用(五)--舞台和常用UI类
- android游戏开发框架libgdx的使用(一)--环境搭建
- 【Android游戏开发十八】解放手指,利用传感器开发游戏!
- android游戏开发框架libgdx的使用-安卓巴士教程地址汇总
- android游戏开发框架libgdx的使用(十三)—TiledMap中的角色和角色移动
- Android游戏开发:如何利用Thread与Handler执行多线程的方法
- android游戏开发框架libgdx的使用(六)--演员和演出
- android游戏开发框架libgdx的使用(六)--演员和演出
- android游戏开发框架libgdx的使用(十四)—TiledMap中视角完善和障碍物处理