当前位置:  编程技术>移动开发
本页文章导读:
    ▪QQ阅读器技术框架解析之5《代码预览和分析》        QQ阅读器技术框架解析之五《代码预览和分析》 本章主要分析个人中心功能不再重复。 ......
    ▪ libgdx简略入门        libgdx简单入门 最近一直想找个android的游戏引擎来研究,但是资源少、大多都不太出名,找了半天,发现libgdx还算不错,于是照着官网的例子,运行了下helloworld示例,发现这个引擎还不错.........
    ▪ 装配 卸载 应用的广播事件       安装 卸载 应用的广播事件 http://blog.csdn.net/sunny2come/article/details/6325363 ......

[1]QQ阅读器技术框架解析之5《代码预览和分析》
    来源: 互联网  发布时间: 2014-02-18
QQ阅读器技术框架解析之五《代码预览和分析》
本章主要分析个人中心

功能不再重复。

    
[2] libgdx简略入门
    来源: 互联网  发布时间: 2014-02-18
libgdx简单入门
最近一直想找个android的游戏引擎来研究,但是资源少、大多都不太出名,找了半天,发现libgdx还算不错,于是照着官网的例子,运行了下helloworld示例,发现这个引擎还不错,代码相对来说不算复杂,而且功能也算强大(虽然对3d的支持好像很弱),入门也容易。
这个helloworld是官方自带的,主要由两个类组成,一个是HelloWorldAndroid:
public class HelloWorldAndroid extends AndroidApplication {
	@Override
	public void onCreate (Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		initialize(new HelloWorld(), false);
	}
}

这个类首先继承AndroidApplication,然后通过initialize方法初始化场景应用。initialize的内部会完成整个游戏的初始化工作,涉及到各种资源的载入,如input、audio、files、graphics等等,这些都是整个游戏引擎的基本组件。
下面再看看这个示例的核心代码类HelloWorld类:
public class HelloWorld implements ApplicationListener {
	SpriteBatch spriteBatch;
	Texture texture;
	BitmapFont font;
	Vector2 textPosition = new Vector2(100, 100);
	Vector2 textDirection = new Vector2(1, 1);

	@Override
	public void create () {
		Log.v("====create======", "===="+new Date());
		font = new BitmapFont();
		font.setColor(Color.RED);
		texture = new Texture(Gdx.files.internal("data/badlogic.jpg"));
		spriteBatch = new SpriteBatch();
	}

	@Override
	public void render () {
		int centerX = Gdx.graphics.getWidth() / 2;
		int centerY = Gdx.graphics.getHeight() / 2;

		Gdx.graphics.getGL10().glClear(GL10.GL_COLOR_BUFFER_BIT);

		// more fun but confusing :)
		// textPosition.add(textDirection.tmp().mul(Gdx.graphics.getDeltaTime()).mul(60));
		textPosition.x += textDirection.x * Gdx.graphics.getDeltaTime() * 60;
		textPosition.y += textDirection.y * Gdx.graphics.getDeltaTime() * 60;

		if (textPosition.x < 0) {
			textDirection.x = -textDirection.x;
			textPosition.x = 0;
		}
		if (textPosition.x > Gdx.graphics.getWidth()) {
			textDirection.x = -textDirection.x;
			textPosition.x = Gdx.graphics.getWidth();
		}
		if (textPosition.y < 0) {
			textDirection.y = -textDirection.y;
			textPosition.y = 0;
		}
		if (textPosition.y > Gdx.graphics.getHeight()) {
			textDirection.y = -textDirection.y;
			textPosition.y = Gdx.graphics.getHeight();
		}

		spriteBatch.begin();
		spriteBatch.setColor(Color.WHITE);
		spriteBatch.draw(texture, centerX - texture.getWidth() / 2, centerY - texture.getHeight() / 2, 0, 0, texture.getWidth(),
			texture.getHeight());
		font.draw(spriteBatch, "Hello World!", (int)textPosition.x, (int)textPosition.y);
		spriteBatch.end();
	}

	@Override
	public void resize (int width, int height) {
		spriteBatch.getProjectionMatrix().setToOrtho2D(0, 0, width, height);
		textPosition.set(0, 0);
	}
.....


这个类的代码其实并不复杂,最主要内容就是SpriteBatch类的使用,这个类有点类似事务的提交,先把图形规定好,然后用end提交时才真正的开始画。不过这个类的render是一个非常关键的方法,默认情况下,libgdx会一直不断的调用此方法以实现动画效果。至于怎么实现鄙人找了下源代码,看了个把小时还是没发现,初步估计可能是通过本地库实现的。至于libgdx的坐标方向与android系统自带的有些不一样,android本身默认是以左上角为原点,而libgdx则是左下角为原点,向上为y轴,向右为x轴。

这个例子代码可从官方下载,效果如下:




还有一个问题需要注意,那就是libgdx加载的图片的尺寸必须是2的n次方,不然会有错。
如里要想在屏幕上画出中文字体的话,见这篇文章:
http://www.cnblogs.com/htynkn/archive/2011/11/11/libgdx_3.html

    
[3] 装配 卸载 应用的广播事件
    来源: 互联网  发布时间: 2014-02-18
安装 卸载 应用的广播事件

http://blog.csdn.net/sunny2come/article/details/6325363


    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3