自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

John_cdy的专栏

codercdy.com

  • 博客(60)
  • 资源 (11)
  • 收藏
  • 关注

原创 UNIX环境高级编程——1.UNIX基础知识

UNIX基础知识 UNIX体系结构 文件与目录 输入和输出 程序和进程 出错处理 用户标识 信号 时间 系统调用和库函数

2022-12-22 16:51:17 969 1

原创 OPENGL学习笔记——光照

1、隐藏表面消除 隐藏表面消除就是消除实心物体被其他物体所遮挡住的部分,最简单的方法就是使用深度缓冲区。深度缓冲区的原理是把一个距离观察平面(通常是近侧裁剪平面)的深度值与窗口中的每一个像素相关联。首先使用glClear()函数,把所有像素的深度值设置为最大可能的距离,然后在场景中以任意顺序绘制所有的物体。深度缓冲区测试可能会影响应用程序的性能,隐藏表面消除丢弃了一些信息,而不是将它们用来绘图,因

2015-08-31 09:51:26 3245 2

原创 OpenGL学习笔记——颜色

每个像素的颜色信息存储方式:RGBA模式:有些图形硬件可以使用抖动来增加可以显示的颜色数量(抖动在默认情况下是开启的)。颜色索引:可用颜色数量受限于颜色映射表的大小以及可用的位平面的数量。在程序执行早期,设置颜色显示模式,当颜色显示模式初始化之后就无法进行更改了,在程序执行期间根据顶点颜色确定每个几何图元的颜色。如果启用了光照,它的颜色取决于变换矩阵与表面法线以及其他材料属性的交互效果。在执行

2015-08-31 09:50:11 1674 2

原创 OpenGL学习笔记——视图

顶点变换的步骤: 视图与模型变换一起组成了模型视图矩阵,这个矩阵作用于物体坐标,产生视觉坐标。紧接着,如果指定了其他的裁剪平面,用于从场景中删除某些物体或者提供物体的裁剪视图,这些裁剪平面会在这个时候生效。之后,OpenGL使用投影矩阵产生了裁剪坐标。这个变换定义了一个视景体,位于这个空间外的物体将会被裁剪掉。随后发生的是透视除法,它把坐标除以w,产生规范化的设备坐标。最后,经过变换的坐标经过视口

2015-08-31 09:48:21 1709 2

原创 游戏中的三维数学

一、点和矢量 (一)坐标系分类笛卡尔坐标系;圆柱坐标系;球坐标系;通常来说笛卡尔坐标系是我们最常用的坐标系,但我们同样要根据不同的情况来选择合适的坐标系,例如我们在做一些环绕动画的时候,采用圆柱坐标系可以更简单。在三维笛卡尔坐标系中又分为左右手坐标系,用左右手来方便做记忆,大拇指指向X轴,食指指向Y轴,中指指向Z轴,3指垂直即可建立模型。左右坐标系的转换只需要把一个轴转换,保留另外两个轴的

2015-08-31 09:45:29 2756 3

原创 png图片解码

PNG,可移植网络图形格式(Portable Network Graphic Format,PNG)名称来源于非官方的“PNG’s Not GIF”,是一种位图文件(bitmap file)存储格式。PNG用来存储灰度图像时,灰度图像的深度可多到16位,存储彩色图像时,彩色图像的深度可多到48位,并且还可存储多到16位的α通道数据。PNG格式有8位、24位、32位三种形式,其中8位PNG支持两种不同

2015-07-18 02:43:26 15239

原创 cocos2dx的图片加载

//data: 图片文件数据 dataLen: 文件长度bool Image::initWithImageData(const unsigned char * data, ssize_t dataLen){ bool ret = false; do { CC_BREAK_IF(! data || dataLen <= 0); unsigned

2015-07-18 02:37:36 4792

原创 cocos2dx 纹理优化

description: 为什么要谈纹理的问题,游戏的画面无时无刻不充斥着图像,通俗意义上一款精致的游戏都有着非常精美的画面,这样往往能给玩家带来更好的游戏体验,这一点也是对于游戏制作者来说所尽力追求的,但是无奈有CPU和GPU的限制,手持设备上的硬件资源就更窘迫一些了,如何处理好图片资源,往往能给游戏提供更大的扩展空间,从画面上给游戏加分。为什么要谈纹理的问题,游戏的画面无时无刻不充斥着图像,通俗

2015-06-04 09:49:22 4825

原创 C++临时对象

C++真正所谓的临时对象是不可见的——不会在你的源代码中出现。只要你产生一个non-heap object而没有为它命名,便诞生了一个临时对象。此等匿名对象通常发生于两种情况: 一是当隐式类型转换(implicit type conversions)被施行起来以求函数调用能够成功; 二是当函数返回对象的时候; 其实还有一种情况就是当你建立一个non-heap objec

2015-06-04 09:48:57 1044

原创 Android学习_ContentProvider和Uri

ContentProvider概述 public abstract class ContentProvider extends Object implements ComponentCallbacks2 Content providers are one of the primary building blocks of Android applicati

2015-06-04 09:43:38 987

原创 C++对象计数

对象计数是C++中一种常见的技术,在-x引擎中也封装了很多对象计数的方法,这里是查阅了相关资料后对常见的对象计数方法进行总结。一个比较简单的单类的计数就是:class Sprite{public: Sprite() { m_count++; }; ~Sprite() { m_count--; }; int getCount() { return m_count; }

2015-06-02 09:45:30 3598

原创 C++中模棱两可的错误

description: 最近看了好多C++的书籍,头都大了,感触比较深的是很多东西还是吃不透,自己在面向对象这块的积累还不够深,读起来比较吃力。后面准备多动手,每天从一些小的细节着手,慢慢修真自己一些不良的编程习惯。最近看了好多C++的书籍,头都大了,感触比较深的是很多东西还是吃不透,自己在面向对象这块的积累还不够深,读起来比较吃力。后面准备多动手,每天从一些小的细节着手,慢慢修真自己一些不良的编

2015-05-05 09:58:55 5521

原创 读书笔记_Effective C++_资源管理

这个章节主要讲的是资源管理相关的知识,C++程序中最常使用的资源就是动态分配内存,但内存只是必须管理的众多资源之一,其他常见的资源还有文件描述器、互斥锁、图形界面的字型和笔刷、数据库连接、以及网络sockets。无论是哪一种资源,重要的是,当你不再使用它时,必须将它还给系统。条款十三Investment* createInvestment(); //返回指针,指向Investment继承体系

2015-05-05 09:57:43 911

原创 C++内存分配

C++内存管理: 变量和对象在内存中的分配都是编译器在编译程序时安排好的,但同样带来了不便,如数组必须大开小用,指针必须指向一个已经存在的变量或对象。动态内存分配解决了这个问题。C/C++定义了4个内存区间:代码区,全局数据区,栈区,堆区。定义变量是在编译程序的时候就进行的静态存储分配,所有的动态分配基本都是在堆区进行的。不过是不能说的这么绝对的,与编译器和库都是有关联的。函数的参数未必通过堆栈进行

2015-05-04 09:53:49 1014

原创 读书笔记_Effective C++_习惯C++

这是一本非常经典C++书籍,也是我在工作中发现自己C++上还有很多薄弱点的时候经常拿来充电的。这本书内容很多,讲了很多如何高效地使用C++的方法,有些地方自己也没能啃透,读过一遍后很多知识点容易忘记,这次是一条一条地进行温习,之所以会分享出来是觉得对于程序员来说,好记性不如烂笔头,自己多动手往往在真正写程序的时候能够像条件反射一样写出好的代码。慢工出细活,对待技术要有谨慎和敬畏之心。这本书推荐喜欢C

2015-05-04 09:51:16 2984 3

原创 Android分辨率适配

Android的分辨率适配问题一直是Android所让人诟病的主要问题,这里参考了官方的开发文档和实际开发中的一些处理分辨率的技巧来和大家交流一下。官方的关于分辨率适配的文档“SupportingMultiple Screens”Overview of Screens SupportScreen size:屏幕尺寸Screen density:屏幕密度Orientation:方向Resolu

2015-04-28 10:35:50 1485

原创 CentOS上安装GitLab

description: 之前在公司因为工作需要,需要搭建一个基于的git的项目管理平台,最好能够比较贴近GitHub的管理方式,从网上找到了GitLab这个开源项目,无论是从界面上还是从功能上都还不错,结果公司的服务器是win的…之前在公司因为工作需要,需要搭建一个基于的git的项目管理平台,最好能够比较贴近GitHub的管理方式,从网上找到了GitLab这个开源项目,无论是从界面上还是从功能上都

2015-04-28 10:30:55 1572

原创 Android学习_Service

description: 从官方的文档就可以看出Service应用程序的模块之一,当应用程序需要去做一些需要长时间运行的操作(后台处理一些耗时的逻辑),并且不需要与用户进行交互,这个时候就可以用Service来在后台实现。最近又开始重新折腾起Android开发,之前赶项目的时候简单地做过一个Android应用,现在的话又要重新学起了…不废话了。概述 public abstract class

2015-04-28 10:14:13 995

原创 读书笔记_Effective C++_构造,析构,赋值

条款五class Empty { };这样的一个类,当C++处理过后,编译器会为它声明一个copy构造函数、一个copy assignment操作符、一个析构函数和一个default构造函数,所有这些函数都是public且inline。class Empty {public: Empty() { ... } Empty(const Empty& rhs) { ... }

2015-04-28 10:09:56 1073 3

原创 Crash Error Debugging

这些天在根据游戏后台的崩溃信息对有游戏进行调试,刚开始调试的时候方向还不是很明确,多调试几次后也摸索出来了一些规律,这里简单地对网上的一些资料做个总结,后面也会持续更新。     SIGBUS和SIGSEGV也许是我们在平时遇到的次数最多的两个内存错误信号。一、SIGSEGVOfficial Description:SIGSEGV --- Segment Fault.

2013-10-09 20:34:38 4039

原创 C/C++数据对齐

Data Alignment 关于数据对齐问题,现在多多少少有了一些接触,简单地说下自己的看法。1、对齐的背景 大端和小端的问题有必要在这里介绍一下,计算机里面每个地址单元对应着一个字节,一个字节为8bit,对于位数大于8位的处理器来说,寄存器的宽度是大于一个字节的,例如16bit的short型变量x,在内存中的地址是0x0010,x的值为0x1122,0x11为高字节,0x2

2013-10-09 20:15:20 2888

原创 Cocos2d-x 绘制节点的流程

一、引擎绘制节点的流程在cocos2d-x中是通过分配一段连续的内存来存储children,当新的child被add进来,他会默认被添加到后面,如果不够会重新分配当前当前最大的两倍的容量,和STL的策略是一样的。在每一帧进行渲染的时候,根据child的zorder的大小进行排序(其实就是冒泡排序),zorder最小的排在前面进行绘制。引擎都是以OpenGL为基础进行图像的绘

2013-03-22 01:49:59 2668

原创 C++内存分配

自己在处理C++内存分配上的一点心得,如果有错误,欢迎大家指出。       变量和对象在内存中的分配都是编译器在编译程序时安排好的,但同样带来了不便,如数组必须大开小用,指针必须指向一个已经存在的变量或对象。动态内存分配解决了这个问题。      C/C++定义了4个内存区间:代码区,全局数据区,栈区,堆区。定义变量是在编译程序的时候就进行的静态存储分配。所有的动态分配都是在堆区进行的。

2012-11-01 02:09:57 4481 2

原创 批处理脚本的细节

写Jenkins在windows下vs项目的自动化编译的批处理脚本的时候,在一些细节处理方法遇到过很多问题,虽然网上关于批处理有很多的教程,但是对于一些指令讲解还是不够详细,这些小问题往往会困扰你比较长的时间,这里分享一下我在写脚本时遇到的一些小问题,希望能够帮助到大家。1.错误处理 一个好的脚本一定要具有一定的错误处理机制,因为脚本的执行虽然快速,但同样带来了一定的破坏性,有时候到另一台

2012-09-15 15:45:04 1952

原创 实习第51天

星期五就要结束为期2个月的实习生活了,真的有点舍不得,和这里的大牛们相处的还是很开心的,他们都很平易近人,很照顾我们,在遇到问题的时候给了我们很多的指导,实习的收获很丰富,不仅收获了在公司实习的经验,更重要的是学会了如何在一个团队里工作,在工作中学习,并且不断提高自己的学习效率。临行前这两个月来一直负责我们的大牛还给了我们很多建议,真的让我受益匪浅,同样也提醒了我自己,自己的C++基础还是比较薄弱

2012-08-28 23:43:56 2332

原创 实习第46天

为期2个月的实习终于快要结束了,一个暑假也就这么过去了,仔细回想一下自己也没去厦门什么地方好好玩一玩,还是挺可惜的,毕竟厦门的小岛氛围感觉还是挺好的,哪次有空一定要好好结伴出门游玩一趟,轻松自在一下,只是这次来还是有很多事要做,自然不能放下担子大胆地玩,不过能在这个地方生活一段时间也是个不错的体验,远比旅游的感觉真切。 本以为实习结束能稍微休息一段时间,给自己放个假,毕竟开学后还要有很多事情要做

2012-08-23 21:42:34 2680

原创 实习第37天

这些天写博客没有之前那么勤了,确实这些天比较忙,本身自动化测试的进度就比较紧凑,临时师兄又给了一个任务,资方拿到了某某应用的中国发行权,不过麻烦的没有给源码,需要将原先的广告平台和数据统计平台进行替换,我主要负责将原先的comScore平台替换成Flurry,主要的流程是将Apk反编译,然后修改smali源码,然后再反编译回去,中间要用JD-GUI查看classes.dex文件转换成jar文件有没

2012-08-14 21:10:05 927

原创 实习第28天

这段时间比较懒,一直没写实习感想了,白天上班回来以后真的有点累,这段时间主要是完成自动化编译平台的部署,对自动化编译的脚本进行调整,同时也开始了自动化测试框架的学习,由于项目需求的特殊,在各个平台下的自动化测试确实比较坑爹。 在Mac下的自动化编译是比较简单的,只需要写shell脚本使用xcodebuild命令就可以完成proj.mac和proj.ios的编译过程,不过比较麻烦的是Mac下的s

2012-08-06 00:35:03 3162 3

转载 Git 使用教程

介绍Git --- The stupid content tracker, 傻瓜内容跟踪器。Linus 是这样给我们介绍 Git 的。Git 是用于 Linux 内核开发的版本控制工具。与常用的版本控制工具 CVS, Subversion 等不同, 它采用了分布式版本库的方式,不必服务器端软件支持,使源代码的发布和交流极其方便。 Git 的速度很快,这对于诸如 Linux kernel

2012-07-29 02:29:15 1517

转载 SSH(Secure Shell)协议简介

概念SSH是指Secure Shell,SSH协议族由IETF(Internet Engineering Task Force)的Network Working Group制定,SSH协议的内容SSH协议是建立在应用层和传输层基础上的安全协议。传统的网络服务程序,如FTP、Pop和Telnet其本质上都是不安全的;因为它们在网络上用明文传送数据、用户帐号和用户口令,很容易受到中间人(m

2012-07-27 21:05:16 2478 1

原创 实习第18天

今天总的来说没做太多的事啊,完成了脚本的修改,昨晚把脚本字符串替换的事情搞定了以后今天就一直在完善脚本,可惜的是今天不能用MacMini,不能在Mac下测试自己的shell脚本,这个月剩下的日子主要就是要完成Xcode的命令行打包的问题,这个月一定要完成Jenkins自动化编译的构建,下个月还有麻烦的自动化测试,貌似又要写一大堆坑底的脚本,很抱歉这段时间内直接把文章发表到首页了,这些文章对他人来说

2012-07-26 22:53:26 1088

原创 实习第17天

今天真心蛋疼,小明哥觉得我写的脚本还不够好,希望我能做到完全自动化,用户不需要在脚本中设置任何路径,关键的路径写入环境变量就可以了,本来以为只要改改脚本就可以了,结果发现在一个问题上卡了很久,就是使用批处理对文件中的路径进行修改,使用DOS下的批处理来进行字符串的查找和替换比较麻烦,所以我想到用shell脚本,那样应该比较简单,但发现如果修改的是个路径就比较麻烦,还要涉及到一定的正则表达式,因为没

2012-07-26 00:55:31 2428

原创 实习第16天

这几天挺忙的,都没什么时间写写博客了,自动化编译的问题只剩下Mac上的Xcode命令行自动化编译了,写了挺多的脚本,不过这些脚本对于那些真正做测试的人员来说肯定是很简单的,对于新手人们还是有一定帮助的,写完以后会贴在博客里,有需要的可以看一看,主要是批处理bat脚本,shell脚本和ant的xml脚本,个人觉得批处理真的是个很好玩的东西,很多事情用批处理文件来处理,方便便捷,十分好用,还有git,

2012-07-25 00:02:03 3293

原创 Jenkins:VS项目的自动化编译

看过前面的Jenkins+Github环境的配置相信大家已经对Jenkins有了一定的熟练程度,也大概知道怎么对vs项目进行自动化编译,这篇博文主要是对一些细节进行补充,后面主要就是Jenkins插件的使用和脚本的问题了,比如Ant的XML脚本,VS项目的批处理脚本,给大家建议是尽量要用脚本来控制构建的过程,在Jenkins里面敲大量的命令行不是好的方法。 我的版本管理基本上都是在GitHub

2012-07-22 22:00:44 11498

原创 实习第11天

今天终于有了进步,对ant的xml脚本也有了简明的掌握,Jenkins+Ant的配置也终于搞定了,剩下的就是尽量把一些路径写入环境变量,第一套android自动化编译的方案终于能落实了,用户权限的问题也解决了,不过希望这只是我电脑的问题,以后装机一定直接使用Administrator账户,省事多了,虽然安全性降低了很多,但是装个360之类的也就OK了,剩下的就是写批处理的问题,希望能写的尽量人性化

2012-07-19 22:37:15 2878

原创 实习第10天

本以为今天能让自动化编译在Jenkins上跑起来,结果没想到在Jenkins上也会出现问题,好坑啊!Jenkins为什么会对这个改变用户权限的指令提示“帐户名与安全标识间无任何映射完成”,无法理解~~。不知道这个问题有没有比较好的解决办法,不懂为什么会在用户权限上出现问题,可能是本机的系统设置问题,把安全级别设置的过高,希望能尽快解决这个问题。不过我自己一直对windows下权限问题不是很清楚,感

2012-07-18 22:03:01 1088

原创 实习第9天

前2天挺忙的,一直也没有写笔记,主要在忙自动化编译的问题,有的看ant的脚本,本身没有做过android的东西,弄android的编译问题还是让我挺蛋疼的,不过ant脚本和批处理脚本还是挺有趣的,一个是xml脚本,一个又是很实用的工具,但是本身这一套编译测试的体系团队里还没人用过,感觉自己摸索一遍还是挺耗精力的,希望自己搭建的东西能够稳定一点。每天的工作时间很充裕,这样的生活很喜欢,能学到东西自己

2012-07-17 23:47:13 2950

原创 Cocos2d-x学习笔记(4)- 触摸反馈

对于游戏来说,触摸事件是最重要的游戏方式,基本上所有的游戏都是基于触摸事件完成的,不过触摸事件也是游戏最基础的事件反馈。cocos2d-x基本上沿袭cocos2d的触摸事件处理方式,下面就简单介绍一下。 一般来说,每一个游戏场景都有一个或几个Layer组成,把场景分成Layer是为了当游戏的元素增多后方便游戏的管理,这样游戏的扩展性也很强,如果单独在一个Scene中处理整个游戏的元素就显得十分冗

2012-07-14 15:54:19 5825 2

原创 实习第5天

今天被坑了那么久,终于配置完了coco2d-x在win32到安卓平台的移植,因为对安卓平台的不熟悉,看配置文件看了很久,加上本来交叉编译就比较坑爹,网上的教程又不是太详细,很是蛋疼,抽空会写一篇分享,这个东西太坑了。后面就是命令行编译的问题,Jenkins只能截获命令行的输出,如何写好批处理文件还是个问题,不过觉得批处理是个很好用的东西,对以后写程序好处多多。不过看样子我暑假写游戏的愿望是破灭了,

2012-07-13 22:44:09 3336

原创 实习第4天

今天是无感的一天,本以为只是已经完成了Jenkins的搭建阶段,谁知道突然间自己的任务又多了起来,要完成引擎在所有平台的自动化编译,这是一个很海量的工作,要写大量的脚本,后期又有多平台海量的测试,自己得加快进度了!觉得自己在面对这种长期又比较大的任务方面还是缺少经验,毕竟自己还没有从头到尾地搭建过一个完整的平台,这种比较大的任务更多是要有好的规划,分阶段地规划自己的进度,有目的地去完成一个时间段的

2012-07-12 23:52:43 2772

Nginx教程从入门到精通.pdf

当今 nginx 的劲头越来越猛,记得 2011 年版本才 1.0.6,现在已经更新到了 1.5.1,nginx 的更新速度越来越快。一 直想记录一系列的 nginx 教程,处于各种原因没去做.今年抽出时间完成平时工作上用到的 nginx.后续将会以视频 教程的方式来做。 Nginx实战教程 详细实战教程,包括环境配置,安装注意事项,模块和案例,常见问题,使用详解

2022-12-22

Jenkins The Definitive Guide

关于Jenkins里很好很详细的权威文档,是不可多得的好资料!

2012-07-13

MIRC 7.25 IRC客户端

MIRC,它有强大的命令功能,可以说是世界上最流行的IRC聊天软件

2012-07-12

SignTool数字签名工具

数字签名的全套工具,从制作签名到检测签名的一整套工具,详细的使用可以去网上查阅,也可以去我的博客。

2012-07-08

NSIS安装包制作教程

一个好很完善的NSIS安装包制作教程,包含了从入门到进阶的一系列知识点,整理了网上的资料和博客文章,很强大!

2012-07-02

NSIS(Nullsoft Scriptable Install System)

NSIS 2.46的安装包,包含了log的文件夹,因为NSIS默认没有开启安装文件日志的功能,需要把log文件夹解压替换安装后的文件夹里的文件才能开启。

2012-07-02

HFS 网络文件服务器

很简单好用的一个文件服务器,对于不想自己搭FTP的同学很实用哦!

2012-07-02

Setup Factory

Setup Factory单机绿色版,很简单实用的打包软件!

2012-06-30

文件夹图标类病毒专杀

很实用的查杀文件夹图标类病毒的软件,特别是对于U盘中毒。

2012-06-29

BCDautofix

一个很好用的启动菜单修复软件,特别是当安装多系统时启动菜单出现问题,这是个很好的grub修复软件。

2012-06-29

VA_X_Setup1906.exe

一个很好用的vs插件,可以自动补全代码,减少对复杂代码的输入。

2012-06-16

空空如也

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

TA关注的人

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