(libgdx小结)图形绘制

标签: libgdx 图形 | 发表时间:2014-03-07 17:58 | 作者:caihongshijie6
出处:http://blog.csdn.net

    在这一小节的图形绘制中所涉及到的类主要有4个:Texture 、TextureRegion、SpriteBatch、Sprite。

Texture:图片的容器

TextureRegion:用于截取Texture

SpriteBatch:相当于画笔

Sprite:其实就是加强版的TextureRegion和SpriteBatch。他可以进一步对图像的位置、颜色、旋转角进行控制


一、初始化方法及常见的API:

batch = new SpriteBatch();//SpriteBatch的初始化
		
		//Gdx.files.internal("potato.jpg"): 获取图片
		texture = new Texture(Gdx.files.internal("potato.jpg"));//Texture的初始化.
		region = new TextureRegion(texture,512,0,512,512);//TextureRegion的初始化
		
		sprite = new Sprite(region);//Sprite的初始化
		sprite.setOrigin(0, 0);//设置绕哪一个点旋转
		sprite.rotate(45f);//设置旋转角度
		sprite.setColor(Color.PINK);//设置画笔的颜色
		sprite.setSize(150, 150);//设置图形的大小
		sprite.setPosition(200, 200);//设置图片的位置


注意点:(参考了“奋斗的小土豆”的博文)

TextureRegion一般都是截取texture,然后定义截取起点(x,y)随后再定义宽高(width,height),如果宽高是正数,那么就是沿x,y正方向截取,如果是负就是沿x,y负方向截取,方向只和宽高的正负有关。这里我举个例子再结合用个图来解释下。

比如: t extureRegion = new(texture,0 ,0 ,48,48);他对应的截图区域和方向,如下图:
libGDX开发教程(二)--图形绘制
     t extureRegion = new(texture,48 ,48 ,-48,-48);他对应的截图区域和方向,如下图:
libGDX开发教程(二)--图形绘制
下面我们来测试一下 t extureRegion 效果,我们来画Potato图片中的女生(即左半部分),同时展示2种图不同


二、应用举例

package com.example.groupactiontest;

import com.badlogic.gdx.ApplicationListener;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.Color;
import com.badlogic.gdx.graphics.GL10;
import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.graphics.g2d.Sprite;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.badlogic.gdx.graphics.g2d.TextureRegion;

public class MyGame implements ApplicationListener {

	Texture texture;
	SpriteBatch batch;
	
	TextureRegion region;
	
	Sprite sprite;
	
	@Override
	public void create() {
		batch = new SpriteBatch();//SpriteBatch的初始化
		
		//Gdx.files.internal("potato.jpg"): 获取图片
		texture = new Texture(Gdx.files.internal("potato.jpg"));//Texture的初始化.
		region = new TextureRegion(texture,512,0,512,512);//TextureRegion的初始化
		
		sprite = new Sprite(region);//Sprite的初始化
		sprite.setOrigin(0, 0);//设置绕哪一个点旋转
		sprite.rotate(45f);//设置旋转角度
		sprite.setColor(Color.PINK);//设置画笔的颜色
		sprite.setSize(150, 150);//设置图形的大小
		sprite.setPosition(200, 200);//设置图片的位置
		
	}

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

	}

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

	}

	@Override
	public void render() {//渲染方法.系统会自动调用
		Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);//清屏

		batch.begin();//开始绘画
//		batch.draw(texture, 0, 0);//将texture画出来..3个参数分别为: 要画出来的texture、画出来的位置的起点的X轴坐标,画出来的位置的起点的Y轴坐标
//		batch.draw(region, 0, 0, 480, 320);//将TextureRegion画出来。。5个参数分别为: 要画出来的TextureRegion,起点的x坐标和y坐标,绘画出来的图片的width和height
		
		sprite.draw(batch);//精灵使用画笔进行绘画
		
        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://download.csdn.net/detail/caihongshijie6/7003797


(再次声明:本文是在奋斗的小土豆的libgdx系列教程的基础上结合自己的理解的。想看原版的博客请搜“libgdx 奋斗的小土豆”)

作者:caihongshijie6 发表于2014-3-7 9:58:51 原文链接
阅读:0 评论:0 查看评论

相关 [libgdx 图形] 推荐:

(libgdx小结)图形绘制

- - CSDN博客推荐文章
    在这一小节的图形绘制中所涉及到的类主要有4个:Texture 、TextureRegion、SpriteBatch、Sprite. Texture:图片的容器. TextureRegion:用于截取Texture. SpriteBatch:相当于画笔. Sprite:其实就是加强版的TextureRegion和SpriteBatch.

libgdx 概述

- - CSDN博客推荐文章
libgdx 是一个跨平台的2D/3D的游戏开发框架,由Java/C/C++语言编写而成,基于  Apache License 2.0 协议,对商业使用和非商业使用均免费,代码托管于 github. libgdx兼容大多数平台,采用标准JavaSE实现,能运行在Mac、Linux、Windows等系统,与Android平台(Android1.5以上即可使用,Android2.1以上可满功率发挥).

libgdx 环境搭建

- - CSDN博客推荐文章
1) libgdx 开发包下载: google code(最新 libgdx-0.9.7.zip    2012.11.12). 2) libgdx 主干源码下载: github tags. libgdx的android开发包主要有 gdx.jar, gdx-backend-android.jar,以及 armeabi 和 armeabi-v7a ( 区别).

[译]Libgdx Developer's Guide(Libgdx开发者手册)-1

- - bob007abc的专栏
Libgdx 是一个跨平台的游戏对象开发框架. 目前支持的开发平台有:Windows, Linux, Mac OS X, Android, iOS 和 HTML5. Libgdx 允许一次编码无需修改即可发布到多个平台. 与其等待最新的修改被布置至设备或者编译为HTML5语言,你可以在桌面环境开发你的应用,主要受益于一个极快的迭代周期.

libGDX 1.0 正式发布,Android 游戏引擎

- - 开源中国社区最新新闻
libGDX 1.0 发布,此版本现已提供 下载,主要更新内容如下:. 基于 Gradle 项目的安装 ,不需要下载二进制包,不需要更多的 jars,支持所有平台的简单打包. 所有文档 的格式都是视频和 Wiki 文章. OpenGL ES 1.x 的支持,支持 OpenGL ES 3.0. 移除了大量 Android 后端的集群,要求最低 Android 版本是.

如何使用libgdx编写一个简单的游戏(一)

- - 博客园_首页
写这几篇文章主要是看了这个系列的文章: http://www.raywenderlich.com/352/how-to-make-a-simple-iphone-game-with-cocos2d-tutorial. 这个系列主要讲述了如何使用Cocos2D编写简单的游戏. 稍微读读感觉不错,所以想写个libgdx版本的.

如何使用libgdx编写一个简单的游戏(二)— 完善

- - 博客园_首页
上一篇介绍游戏雏形的编写,这一篇将完善部分逻辑并添加更多效果. 例子代码在 https://github.com/htynkn/DartsShaSha,如有需要请自行在tag中下载对应部分. 现在的飞镖可以旋转可以飞行了,但是有一个问题却没有解决. 首先飞镖的速度,如果用户触摸位置很靠近左侧,那么飞镖的速度就很慢了.

CSS图形

- GLORY - 酷壳 - CoolShell.cn
下面的示例展示了使用纯CSS制作的各种图形,你可以自由地修改文中的CSS代码. 经测试,IE9, Chrome, FF, Safari都可以正常显示. 五角星形 via Kit MacAllister. 心形 via Nicolas Gallagher. 无穷大 via Nicolas Gallagher.

图形版Telex

- Vent - 闲云野鹤的家
启动时程序自动设置浏览器代理,退出后自动取消浏览器代理. 下载   http://u.115.com/file/e6dpvsfy.

图形化简历

- Jacqueline - 阮一峰的网络日志
信息的图形化是目前的热门方向,很多人都在研究. 有些设计师开始尝试"图形化简历"(Infographic Resume),即以图形为主、文字为辅表示个人的主要信息. 程序员Christopher Perkins用5种颜色的直线,表示自己的5个主要方面(工作经历、教育背景、主要领域等). 每条直线上标出重大事件的时间节点.