libgdx的使用--绘制图片

上一节我们用到了SpriteBatch类 但是我们并没有使用它 现在用它的draw()方法来绘制图片的位置.
要绘制图片 首先要有图片 ,我们找到图片存储在assets文件夹中,assets文件夹是开发android工程中专门存储图片的文件夹
首先要声明一个Texture 私有变量texture;在HelloGame类中的create()方法里实例化一个Texture;
texture=new Texture(Gdx.files.internal("meinv.jpg"));
这里要注意的有俩点:1图片的像素必须是2的次方,在导入前必须要对该图片进行处理成2的次方的              像素.2(Gdx.files.internal("meinv.jpg"))中 后缀名一定要和原图片保持严格一致(包括大小写)这也是我犯过的一个错误.
其次在HelloGame类中的render()方法中绘制图片的位置了,batch.draw(texture,20,10);


package com.FLM.helloworld;

import com.badlogic.gdx.ApplicationListener;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.GL10;
import com.badlogic.gdx.graphics.Texture;
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("FengliMin.PNG"));

}

@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.draw(texture,20,10);
batch.end();

}

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

}

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

}

}

然而事实上 为了某种需要 我们总是要部分显示某些图片 那么Texture类就不能很好的满足需要了 这时就要用到TextureRegion类
这时主要的代码就要修改
在create()函数中 batch=new SpriteBatch()'
                 texture=new Texture(Gdx.files.internal("meinv.jpg"));
                 region=new TextureRegion(texture,30,80,200,200);
在render()函数中 batch.begin()'
                 batch.draw(region,0,0);
                 batch.end();
如果这些功能还不能满足需要 那么还可以用Sprite类,该类不仅能绘制图片的位置还能指定旋转角度和图片颜色 一般用于2D场景渲染.
同样 相应的代码就要修改为
在create()函数中 batch=new SpriteBatch();
                 texture=new Texture(Gdx.files.internal("meinv.jpg"));
                 sprite=new Sprite(texture,30,80,200,300);
                 sprite.setPosition(10,10);
                 sprite.setRotation(45);
                 sprite.setColor(5,3,2,3);
在render()中做如下修改:
                 batch.begin();
                 sprite.draw(batch);
                 batch.end();

你可能感兴趣的:(libgdx)