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();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值