自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 收藏
  • 关注

转载 LuaJavaBridge - Lua 与 Java 互操作的简单解决方案

LuaJavaBridge原作者文章:LuaJavaBridge - Lua 与 Java 互操作的简单解决方案

2014-03-04 10:40:53 8389

原创 Android系统亮屏、锁屏、屏幕解锁事件(解决部分手机亮屏后未解锁即进入resume状态)

有一部分三星的手机关闭屏幕以后,刚打开屏幕,前台的activity就会resume状态,因为我们使用cocos2d-x引擎,默认resume和activity的resume事件是一致的,我们在resume里把关闭的声音重新打开,所以导致,用户点亮屏幕以后(尚未解锁),就会听到游戏内的声音(如果在关闭屏幕时我们游戏处于前台)。为了解决这个问题,我们需要修改我们resume触发的时机。确保在解锁以后才进入我们游戏的resume状态。那么我们游戏应该在什么时机进入resume状态呢?1. 系统activi

2014-03-03 15:56:50 24099 1

原创 lua中让log的模块开关更人性化

我们知道,在一个软件项目中是少不了日志的,我们用它来输出系统运行的关键信息,开发人员用的调试信息,以及程序出错的错误信息等等。对于这么多重要程度不同的信息,日志系统通常都会为日志分几个等级,便于在软件的开发,上线,运维阶段开关日志提供便利。要控制日志的开关,除了等级以外,通常还会划分模块,拿游戏项目来说,大的模块有UI模块、场景管理模块、游戏逻辑模块等等。大的模块下面又会分一些小的模块比如游戏逻辑又分:坦克逻辑,飞机逻辑,步兵逻辑等等。在开发阶段,调试程序的时候通常我们只会关心自己开发的模块和相关模块的运行

2014-03-02 01:11:39 7360 2

翻译 Activity的生命周期

Activity有三种本质的状态Resumedactivity在屏幕前台,拥有焦点,这个状态有时也称为runningPaused 另一个activity在前台并且拥有焦点,但是此activity仍然是可见的时,此activity处于Paused状态。也就是说,另一个activity在这个activity的上面,但它是半透明的或者是只遮挡了此activity的一部分,这时此activity也是可见的。这时此activity仍然是完全存活状态,但是当系统处于极低内存的情况下可能被杀掉。Stopped

2014-02-26 19:32:23 1420

原创 重写require使lua文件模块化

lua文件模块化目标: 没有声明local的变量不会加入到全局变量,而是作为模块的变量 访问模块变量一律使用 "模块名.变量名"的形式 模块中使用显示的方式访问全局变量 模块是只读的,外部不能修改(能不能修改,可以在加载时设置)

2014-02-20 22:55:22 8110 1

原创 cocos2d-x的lua脚本如何获得Cocostudio中UI控件的对象

上一节中讲了如何加载cocostudio的UI文件(参考:cocos2d-x的lua脚本如何加载Cocostudio制作的UI文件)那么我们如何获取UI上的控件呢?答案是通过Name或Tag查找,使用函数getChildByName() 或 getChildByTag()。

2014-02-19 00:29:18 9507 2

原创 cocos2d-x的lua脚本如何加载Cocostudio制作的UI文件

以cocos2d-x-2.2.2和cocostudio1.2.0.1版本为例第一步,使用cocostudio的UI编辑器编辑好UI。第二步,将编辑好的UI文件导出到工程的resources目录下面(例:d:/cocos2d-x2.2.2/projects/demo1/resources)第三步,在lua文件中加载json文件,只需一句话(红色部分)!

2014-02-17 23:21:16 13194 5

原创 Android多线程之图解Handler Looper MessageQueue Message

Android中的多线程可以有多种实现方式,前面我们已经讲过了封装程度较高异步任务(AnsyncTask),这一节我们来看看较为灵活的方式:Handler Looper MessageQueue Message。Message:用于线程之间传递信息,发送的消息放入目标线程的MessageQueue中。MessageQueue:用于简化线程之间的消息传递,MessageQueue接受发送端的Message,并作为消息处理端的输入源。每个线程只有一个实例。Handler:用于处理Message。根据业务

2014-02-13 16:13:30 6983

原创 如何让Android屏幕只能上下翻转

通常我们的应用只会设计成横屏或者竖屏,锁定横屏或竖屏的方法是在manifest.xml文件中设定属性android:screenOrientation为"landscape"或"portrait":其中sensorLandscape就是横屏根据重力上下翻转,sensorPortrait竖屏根据重力上下翻转。

2014-02-10 18:08:48 14748

翻译 Android的任务和回退栈

一个任务就是用户为了执行特定工作而与之交互的activity的集合。这些activity会根据被打开的顺序被安放在一个栈(回退栈)中。

2014-02-10 14:30:03 13371 5

翻译 Android管理服务(Service)的生命周期(lifecycle)

服务(Service)的生命周期要比Activity简单的多。尽管如此,由于服务会在用户不知情的情况下运行在后台,你也要严密监视你的服务是如何创建和销毁的。服务的生命周期(从创建到销毁)有两条路径:被启动的服务(started service) 当服务被一个组件通过startService()函数启动后,这个服务就会独立的运行,必须被自己用stopSelf()函数或者其他组件用stopService()函数来停止。一旦服务被停止,系统就会销毁它。绑定的服务(bound servi

2014-01-27 19:17:18 9883

翻译 Android创建服务之started service

有两种方式可以创建started service,一种是扩展Service类,另外一种是扩展IntentService类扩展Service 这是所有服务的基类。扩展这个类的时候,特别重要的一点是,需要创建一个新的线程来做服务任务,因为service默认是运行在你的主线程(UI线程)中的,它会使你的主线程运行缓慢。扩展IntentService 这是一个service的子类,他可以在一个工作线程中处理所有的启动请求。如果你不需要同一时刻出来所有的服务请求,使用IntentS

2014-01-27 17:29:44 3478

翻译 Android服务(Service)概述

Service是一种组件,他可以长时间在后台运行,并且没有用户界面。其他的组件可以启动service,即使用户切换到了其他的应用,service也会在后台继续运行。其他组件可以绑定到一个service与它进行交互以及进程间通信。举个例子,一个service可以处理网络传输、播放音乐、处理文件I/O或者与content provide进行交互,所有都是在后台进行。

2014-01-26 16:28:16 1391

原创 Android多线程之AnsyncTask

Android系统默认情况下App的所有组件都运行在主线程中(也叫UI线程),如果我们有某个操作占用时间较长,就有可能阻塞我们的UI,导致用户的交互不顺畅,如果卡的时间超过5秒,系统还会弹出用户提示框提示用户是否杀掉进程,这当然不是我们希望看到的。 为了处理这种情况,很自然的想法是将耗时的操作放到另一个线程中执行,Android为处理异步操作提供给了我们几种方式,我们就先来看看一种封装程度较高的方式,通过继承AnsyncTask类来实现异步操作。

2014-01-25 01:06:52 3591

翻译 Android系统回收资源时进程被杀的优先级

参考:http://developer.android.com/guide/components/processes-and-threads.html#Processes    Android系统在系统资源不够的情况下,会回收一些资源(杀掉进程)用于系统运行。    下面是进程的重要程度,按从高到低排序,当系统需要回收资源的时候,排在下面的优先被杀掉。1.前台进

2014-01-24 18:52:40 3169

原创 关于OpenGL ES版本

1. OpenGL ES 各版本OpenGL ES 1.x 针对固定管线硬件OpenGL ES 2.x 针对可编程管线硬件OpenGL ES 1.0 以 OpenGL 1.3 规范为基础OpenGL ES 1.1 以 OpenGL 1.5 规范为基础OpenGL ES 2.0 以 OpenGL 2.0 规范为基础OpenGL ES 3.0 于2012年公布,在Ope

2013-10-27 10:56:16 3883

原创 突然发现std::map的迭代器是有序遍历的

直会用到map的迭代器用来遍历元素,用久了也就没忽略了他的另一个性质,它是有序遍历的,哈哈。

2010-07-14 10:47:00 11852

转载 Python 使用 xlrd 读取 Excel格式文件

<br /><br />使用 xlrd 能够很方便的读取 excel 文件内容, 而且这是个跨平台的库,能够在windows,linux/unix,等平台上面使用。<br />软件可以去这个地址http://www.lexicon.net/sjmachin/xlrd.htm下载。简单例子import xlrd fname = "sample.xls"bk = xlrd.open_workbook(fname)shxrange = range(bk.nsheets)try: sh =

2010-07-07 00:56:00 1699

原创 OpenGL与Direct3D几点不同(坐标系,向量,绕序)

  OpenGLDirect3D坐标系右手坐标系左手坐标系向量列向量行向量矩阵存储方式列主序行主序多边形正面顶点绕序逆时针顺时针 向量的行列性导致矩阵与向量乘法方式有所不同:列向量==>矩阵右乘向量行向量==>矩阵左乘向量 其中OpenGL可以设置顺时针为多边

2010-03-14 17:17:00 2849 2

原创 矩阵的行主序与列主序

1.矩阵在内存中的存储     不管是D3D还是OpenGL,使用的矩阵都是线性代数标准的矩阵,只是在存储方式上有所不同。分别为:行主序(Direct3D),列主序(OpenGL)     存储顺序说明了线性代数中的矩阵如何在线性的内存数组中存储。例如:内存中使用一个二维数组m存储矩阵,第i行第j列的表示方法分别为:     行主序:m[i][j]    列主序:m

2010-03-14 14:06:00 15007 1

原创 各种低高级着色语言

 各种低高级着色语言  着色程序(shader)分为两种:1.vertex shader顶点着色程序2.fragment shader片段着色程序 着色程序可以用低级着色语言(类似汇编),或高级着色语言 一.低级着色语言 虚拟机    为统一各个GPU厂商的接口,DirectX 和 OpenGL 分别定义可执行shader的虚拟机,GPU厂商在显

2010-02-25 13:39:00 1832

原创 编译OGRE v1.7手记

 编译OGRE v1.7手记  1.用SVN取得源代码https://svn.ogre3d.org/svnroot/ogre/branches/v1-7 2.下载Ogre依赖包http://sourceforge.net/projects/ogre/files/ogre-dependencies-vc%2B%2B/1.7/OgreDependencies_MSVC_20

2010-02-24 22:25:00 1214 2

原创 在windows下使用高版本的OpenGL SDK?

        现在opengl已经有3.2版本了,Visual c++ 2005自带的opengl sdk才是1.1版本的,想用OpenGL高级版本,去opengl官网转转吧,但那只定义API标准,没有实现,在网上搜OpenGL2.0 SDK OpenGL3.0 SDK,搜了半天也没找到下载地址,终于发现是要用扩展库的方式。 下载glew(The OpenGL Extension

2010-02-20 00:08:00 8877 1

原创 VC2005断点进阶

       对于使用VC开发,设置断点进行调试是非常的方便的。众所周知按F9可以开关断点。按F5启动进入调试模式。程序每次运行到断点处会自动暂停程序,除此之外断点还有更多方便的用法。很可惜,笔者前不久才刚刚发现。在此分享一下 1.当前行断点:例如有下面的一段程序: int s = 0; for(int i = 0;i<100;++i) { s +=i; }

2010-01-03 13:34:00 2115

原创 VC2005查看类的对象内存分布选项

C++->Command Line里加编译选项/d1reportSingleClassLayout 查看单个类的对象内存分布/d1reportAllClassLayout 查看全部类的对象内存分布举例:/d1reportSingleClassLayoutMyClass 其中MyClass是你要查看的类,注意中间没有空格 详细参阅Visual C++ 8.0对象布局的奥秘:虚

2010-01-03 10:29:00 778

原创 我常用的VC快捷键

VC(带VAssist插件)快捷键 .h文件与.cpp文件切换(VAssistX.OpenCorrespondingHorCPP)Alt+O光标前次的位置(View.NavigateBackward)Alt+←光标后次的位置(View.NavigateForward)Alt+→

2009-06-24 12:18:00 1032

原创 Boost中支持序列化反序列化的库--boost.serialization

Boost中支持序列化反序列化的库--boost.serialization boost.serialization的特点1.        支持XML和二进制两种形式2.        支持类的版本号3.        支持深度指针存储4.        支持多个指针共享数据5.        支持STL容器存储6.        支持

2009-06-18 15:45:00 4933

原创 Boost线程学习简记

Boost线程学习简记头文件#include创建线程boost::thread是线程类,创建线程非常简单,只需要创建一个thread对象,并把线程工作函数作为参数传给构造参数。void output(){   std::coutstd::endl;}…boost::thread t(output); 传递参数如果我们的工作函数需要参数怎么

2009-06-16 16:56:00 2944

原创 Mipmap纹理技术简介

       在三维世界中,显示一张图的大小与摄象机的位置有关,近的地方,图片实际象素就大一些,远的地方图片实际象素就会小一些,就要进行一些压缩,例如一张64*64的图,在近处,显示出来可能是50*50,在远处可能显示出来是20*20.        如果只限于简单的支掉某些像素,将会使缩小后的图片损失很多细节,图片变得很粗糙,因此,图形学有很多复杂的方法来处理缩小图片的问题,使得缩小

2009-05-23 01:38:00 595

原创 用python分割TXT文件成4K的TXT文件

    ipod虽然很酷,但它的电子书功能却弱到了家,只支持看不到4K的txt格式,于是我只好用python写了个工具,来拆分我的txt文件,源码如下:  ###########################                                                            ## 为了避免截断中文字符          

2009-05-23 01:25:00 1025

原创 方便的XPath――用一个表达式轻松定位XML结点

  Normal 0 7.8 pt 0 2 false false false MicrosoftInternetExplorer4 <!-- /*

2009-01-24 16:01:00 1129

原创 使用SWIG实现C++导出python接口的配置

Normal 0 7.8 pt 0 2 false false false MicrosoftInternetExplorer4 <! /* Sty

2009-01-23 14:15:00 2186

原创 插入排序详解

<span style="font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:"Times New Roman"">插入排序 <span style="font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-

2008-11-24 00:18:00 991

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除