04 2013 档案
摘要:Q: What are '__FILE__' and '__LINE__'?A: '__FILE__' and '__LINE__' are predefined macros and part of the C/C++ standard. During preprocessing, they are replaced respectively by a constant string holding the current file name and by a integer representing the current l
阅读全文
摘要:[Cocos2d-x相关教程来源于红孩儿的游戏编程之路CSDN博客地址:http://blog.csdn.net/honghaier]红孩儿Cocos2d-X学习园地QQ群:249941957 加群写:Cocos2d-x本章为我的Cocos2d-x教程一书初稿。望各位看官多提建议!Cocos2d-x纹理优化的一些方案 在目前的移动平台游戏开发过程中,很多朋友会遇到开发出来的DEMO占用内存过大,导致渲染效率低下的问题。究其原因,是由硬件本身和软件逻辑两方面的因素造成的。在硬件上,移动设备往往可用内存相比于PC还比较小,所以所能使用的内存就少。在软件逻辑上,大量使用大图片导致占用内存过大,以及过
阅读全文
摘要:cocos2dx里面,sprite本身不消耗多少内存,只是关联的材质文件消耗内存。假设有10个sprite关联同一个材质,也不会有10倍消耗。关于图片占用的材质内存,我觉得还有好几种优化手段:1、对于背景图,因为不需要考虑透明问题。载入材质时可以使用 RGB565 格式(5位红色,6位绿色,5位蓝色),每一个像素消耗的内存是16bit = 2byte。比默认的 RGBA8888 消耗的内存少一半。2、大尺寸的图可以适当缩小,显示时拉伸放大。比如960x640的图可以缩小为768x512,消耗的内存减少一半。3、有些sprite不需要那么多的色彩,可以用 RGBA4444 格式载入,一个像素也只
阅读全文
摘要:1、工作现场代码:[cpp] view plaincopyprint?typedef MyData { int data1; int data2; } * LPMYDATA; const LPMYDATA pData = getData(); // do sth else pData = getNewData(); // compile error typedef MyData{ int data1; int data2;} * LPMYDATA;const LPMYDATA pData = getData();// do sth elsepData = getNewData...
阅读全文
摘要:(未完成)1、2d游戏最占内存的无疑是图片资源。2、cocos2d-x不同平台读取纹理的机制不同。ios下面使用CGImage,android和windows下是直接调用png库。我测试了下,使用png库直接读取png会比CGImage还要节约1mb左右内存(图片所占内存4mb)但是速度要比CGImage慢一倍。时间和空间如何取舍就看实际情况了。不过最佳的选择似乎是pvr(即使android版本,即使不使用pvrtc4)。3、一般来说,我们可以直接使用 w * h * bpp得到一张纹理所占的内存,比如一张1024*1024格式为argb8888,那么他所占的内存就是1024*1024*4=4
阅读全文
摘要:游戏资源打包几乎是一个网络游戏客户端必备的功能。页游和微端根据实际需求可能不打包资源或者使用小包。资源打包有这么几个好处:1、加快客户端安装时间。拷贝3000个1mb文件所消耗的时间要远大于拷贝一个3g的文件所消耗的时间2、客户端更加整洁,也可以“稍微”避免游戏资源被他人使用。3、ios和android上面可以避免文件名大小写不一致造成的文件读取失败。或者说包内可以做到全平台大小写无关4、压缩资源,如果是大量png等图片资源可能还体现不出来,但是如果有大量文本和未压缩模型资源,那么打包可以有效减小客户端这里介绍两个开源库,可以非常方便的给客户端加入资源打包功能。1、StormLib(http:
阅读全文
摘要:依照惯例,先上代码:[cpp] view plaincopyprint?#pragma once #ifdef WIN32 #include <windows.h> #include <WinSock.h> #else #include <sys/socket.h> #include <fcntl.h> #include <errno.h> #include <netinet/in.h> #include <arpa/inet.h> #define SOCKET int #define SOCKET_ERROR
阅读全文
摘要:cocos2d-x并不是一个适合网游客户端(mmo)的游戏引擎,越是大型游戏,这个小引擎就越无法驾驭(虽然它非常受欢迎)。 之前我在原来的公司使用的是自主研发的C3引擎,已经对外开放(尚未开源),后面如果我有提到c3引擎,那么指的就是这个2.5d游戏引擎。 我想起我上个月刚离职的时候,c3的首席研究员(应该也是引擎圈内的一个大牛)对我说cocos2d-x没有什么技术含量,我还不以为然,当时我想的是,如果我自己开发一个游戏,首选必然是cocos2d-x。但是真正到新的公司接触了使用cocos2d-x开发的一个类似神仙道的mmo才感觉cocos2d-x对于一个mmo引擎来说,差的很多。与c3相比.
阅读全文
摘要:英文字母:字节数 : 1;编码:GB2312字节数 : 1;编码:GBK字节数 : 1;编码:GB18030字节数 : 1;编码:ISO-8859-1字节数 : 1;编码:UTF-8字节数 : 4;编码:UTF-16字节数 : 2;编码:UTF-16BE字节数 : 2;编码:UTF-16LE中文汉字:字节数 : 2;编码:GB2312字节数 : 2;编码:GBK字节数 : 2;编码:GB18030字节数 : 1;编码:ISO-8859-1字节数 : 3;编码:UTF-8字节数 : 4;编码:UTF-16字节数 : 2;编码:UTF-16BE字节数 : 2;编码:UTF-16LE可以通过代码看出
阅读全文
摘要:Linux上进行编码转换时,既可以利用iconv函数族编程实现,也可以利用iconv命令来实现,只不过后者是针对文件的,即将指定文件从一种编码转换为另一种编码。一、利用iconv函数族进行编码转换iconv函数族的头文件是iconv.h,使用前需包含之。#include <iconv.h>iconv函数族有三个函数,原型如下:1) iconv_t iconv_open(const char *tocode, const char *fromcode);此函数说明将要进行哪两种编码的转换,tocode是目标编码,fromcode是原编码,该函数返回一个转换句柄,供以下两个函数使用。(
阅读全文
摘要:1、recv和send recv和send函数提供了和read和write差不多的功能.但是他们提供了第四个参数来控制读写操作。int recv(int sockfd,void *buf,int len,int flags)int send(int sockfd,void *buf,int len,int flags)前面的三个参数和read,write相同,第四个参数能够是0或是以下的组合_______________________________________________________________MSG_DONTROUTE:不查找路由表MSG_OOB:接受或发送带外数据MS.
阅读全文
摘要:当网络通信时采用TCP协议时,在真正的读写操作之前,server与client之间必须建立一个连接,当读写操作完成后,双方不再需要这个连接时它们可以释放这个连接,连接的建立是需要三次握手的,而释放则需要4次握手,所以说每个连接的建立都是需要资源消耗和时间消耗的经典的三次握手示意图:经典的四次握手关闭图:2. TCP短连接我们模拟一下TCP短连接的情况,client向server发起连接请求,server接到请求,然后双方建立连接。client向server发送消息,server回应client,然后一次读写就完成了,这时候双方任何一个都可以发起close操作,不过一般都是client先发起cl
阅读全文
摘要:最近开始学习Unity开发,由于以前一直都是从事C/C++开发,所以对于Unity的脚本语言方面,选择了最相近的C#。由于从头开始学习C#是没有必要的,所以就恶补了一下必须的C#知识^-^1.C#中使用//(双斜杠)来表明本行的剩余部分代表注释。2.C#中语句是按顺序执行的,每条语句以分号结尾。3.C#中的函数执行一系列语句的行为,称为语句块---一对大括号中包含0条或多条语句。4.一个函数可以通过定义参数来从调用者处接受输入数据,也可以通过定义返回类型来输出数据给调用者。5.Main函数定义为执行程序的默认入口点。Main函数可以不返回任何值,也可以返回一个整数给执行程序环境。Main函数也
阅读全文
摘要:1、前言6月26日,GoogleAndroid发布了NDK,引起了很多发人员的兴趣。NDK全称:NativeDevelopmentKit。下载地址为:http://developer.android.com/sdk/ndk/1.5_r1/index.html。2、误解新出生的事物,除了惊喜外,也会给我们带来一定的迷惑、误解。2.1、误解一:NDK发布之前,Android不支持进行C开发在Google中搜索“NDK”,很多“Android终于可以使用C++开发”之类的标题,这是一种对Android平台编程方式的误解。其实,Android平台从诞生起,就已经支持C、C++开发。众所周知,Andro
阅读全文