程序使用的文字编码的数组形式

前几天,在开发项目的时候,程序中需要使用一串文本,这串文本必须用unicode来输入。但是,编译器又不支持unicode编码,搞得这个编码必须写成字节形式。刚开始我就手动的处理了一下,不想后来可能要变动。虽然再后来换了一种方法,不使用这个方式了。但一想万一哪一天图个简便,又需要这种方式了,说不定也还有用的。所以就整理了个命令行的小脚本。脚本内容也极为简单:

继续阅读程序使用的文字编码的数组形式

语言陷阱:C++继承的转换

起了个很壮观的名字,也就是说,有点招摇撞骗的感觉。我想将这部分做一个系列,但有不想与别的太重合。嗯,这个系列的来源是这样的,平时总有人问我,xxx为什么无法编译通过,明明是对的,有些时候,我也这样问自己。从概念上来说,一些问题是不应该出现的,但却实际出现了,理论和实际总会出现一些冲突的。因此,我希望将一些平时我们不注意的细节记录下来,让我们在出现类似问题的时候可以寻找到答案,减少我们所犯的错误。
目前我电脑还没有安装完开发环境,所以,今天的开始只是一个回忆的开始,从我能记住的开始。改天将代码的实际测试结果和错误结果给出。
在C++中,继承很是强大,我们可以通过继承来扩展类型,但扩展是否有限制呢?先看下面的一组代码:

       void copy(int* a, int* b)
       {
       }

       void copy(byte* a, byte* b)
       {
       }

       class CBase()
       {
       public:
       CBase(){}
       virtual ~CBase(){}
       }

       class Child: public CBase
       {
       public:
       Child(){};
       virtual ~Child(){};
       }
       void copy(CBase** a, CBase** b)
       {
       }

       void main()
       {
       CBase** temp1 = new Child*[10];
       Child** temp2 = new Child*[10];
       copy(temp1, temp2);
       }
       

继续阅读语言陷阱:C++继承的转换

opengl es 1.x坐标转换

开发2D游戏的时候,opengl的坐标系统的原点在窗口左下角,与其他的坐标系统不一致。我使用下面的方法来进行转换:

    glViewport(0, 0, backingWidth, backingHeight);
	glMatrixMode(GL_PROJECTION);
	glLoadIdentity();
	glOrthof(0, (float)backingWidth, 0, (float)backingHeight, 0, 100);
	/*
	 改变坐标系方向为windows的坐标系
	 (0,0)---x++
	 |
	 |
	 |
	 y++
	 */
	glTranslatef((float)0, (float)backingHeight, 0);
	glRotatef(180.0f, 1.0f, 0.0f, 0.0f);
	
	glMatrixMode(GL_MODELVIEW);
	glLoadIdentity();
       

上面的方法对opengles 1.x是有效果的,2.0使用GLSL的话,貌似没有效果(我在一个未发布的手机的sdk上进行测试的,不过,也可能是sdk的问题,因为sdk还是beta版本,里面问题多多)。