- 博客(35)
- 收藏
- 关注
原创 关于代码、学习、效率
看一天的代码然后动手再去写总比写了一天的代码出各种Bug要好的多。程序是一门理论与实践相结合的艺术。看代码的一些技巧:分清形势,有时候要一段一段看,有时候要一句一句看;有时候只看返回结果即可,有时候则要不断进入函数弄清其具体实现;所有的一切,看似随机应变,实则有规律可循。不想说得太死,因为看代码有技巧,也很抽象,千言万语汇成还是一句话:看情况。
2015-06-16 22:26:55
1451
原创 lua for循环遍历table的几种区别
众人皆知的是有两种:ipairs和pairs,这两种相信大家也是很了解了,其中ipairs是从头(idx=1)开始往后遍历,遇到nil即退出循环;而pairs则是顺序不定的遍历,只要里面有值都可以遍历的到。 那假如我需要顺序遍历而且即使中间有nil也能完整遍历到最后呢? 接下来就说这个:通过maxSize = table.maxn(t)获取到table最后一
2014-11-19 16:47:52
7041
原创 Cocos2dx&Lua - UI显示优化之如何解决解析大量json文件
GUIReader中有个widgetFromJsonFile的方法,此方法是用于解析json文件(cocostudio生成的UI的)并返回该文件的父节点(Widget),然后便于进一步的UI操作(如获得各种子类进行填充数据作显示等)。 那么这时候问题就来了,当需要在一个页面或一个控件(尤其是翻页、列表等)中,需要加载入大量的节点(均是由单独json解析得到的),这时,假如你
2014-10-26 17:10:41
2573
原创 C++笔试面试总结
今天去广州的一家手游公司进行笔试面试,刚进去是中午1点半的时候,他们公司的人刚睡醒,一个个精神萎靡地去打卡然后上班,瞬间对这公司就没什么好印象,整个氛围好压抑。接着快2点的时候,发了一份笔试题,大部分题目均在网上的《C++经典面试300题中》,另外还有几道题目里面没有的(估计是根据公司需求另加的):如:1,有malloc/free,为什么还用new/deleter?2,Internet采用
2014-07-01 00:58:11
2170
1
原创 设计模式 之“他见”与“我解”
设计模式的案例和教程网上和书籍均比比皆是,且都可以是长篇大论。在此,我摘抄的是一句到几句我认为是足以对我能起到启发或概括亦或是点睛作用的句子。“他见”是指别人或书本上的客观看法,而“我解”则是我自己对这些客观看法的观点。 观察者设计模式:从具体主题角色指向抽象观察着角色的合成关系,代表具体主题对象可以有任意多个对抽象观察者对象的引用,之所使用抽象观察者而不是具体观察者,
2014-03-30 01:20:53
1991
原创 cocos2dx 中实现分页效果
游戏中实现分页还是很有必要的,无论是背包/商店还是其他一些有列表显示的模块,因为实现分页会给手机减轻不少压力。在这里我先说明,我实现的分页是数据已经全部加载完成了的,而其分页的作用也就是减轻GPU的压力。(当然,要想将数据也和显示一一对应的话,也是不难实现的,得看情况和项目需求) 我的思路是这样的,既然已经加载了所有分页的数据,那么按显示进行分开的话,所以在每一页的初始元素
2014-03-27 20:59:29
2495
原创 C++ 常用操作帖子汇总
1,去除变量的const属性:http://www.cnblogs.com/ider/archive/2011/07/22/cpp_cast_operator_part2.html2,strcpy:将const char *指向的值赋给char数组,http://www.360doc.com/content/12/0725/10/219024_226333196.s
2014-03-27 15:07:51
1341
原创 Cocos2dx 中大量读取图片的实现
首先肯定得对图片进行分类,如一款卡牌游戏,图片有角色,角色icon,武器,武器icon等;这里用枚举对其分类标识。enum UIIMAGE{ ARMOR_IMG, ARMOR_ICON, EQUIP_IMG, EQUIP_ICON, ITEM_ICON, MAX_UIIMAGE} 有了图片分类,其
2014-03-09 16:47:10
2493
转载 C++中对sprintf()函数的说明
在将各种类型的数据构造成字符串时,sprintf 的强大功能很少会让你失望。由于sprintf 跟printf 在用法上几乎一样,只是打印的目的地不同而已,前者打印到字符串中,后者则直接在命令行上输出。这也导致sprintf 比printf 有用得多。sprintf 是个变参函数,定义如下:int sprintf( char *buffer, const char *format [,
2014-02-25 16:32:37
3644
转载 Cocos2d-x 内存管理中retain() 、autoRelease()、release()
首先要知道的:在Cocos2d-x中,create()会设置为autorelease() ,如果用create()出来的对象没有人认领,即没有被addchild(),那么在每一帧刷新的时候,Cocos2d-x检测到这个对象没人要,就会把他释放,释放之后我们再去用这个对象,就可能会出现崩溃等问题。那么一个没人要的对象怎么样保持原来的状态而不被自动释放呢?用retain(),在cr
2014-02-25 15:03:10
1732
原创 Extensions Test(NO.1)- CocoStudioGUITest_UIListViewTest
使用cocostudio UI编辑,并实现列表。 参照testcpp里的ExtensionsTest/CocoStudioGUITest/UIListViewTest,对其理解如下: 先初始化一个元素指针default_button(loadTextures为点击前后图片的切换;如果不是用图片加载的,而是用.ExportJson或.Json格式的,则通过如下方式
2014-02-20 18:08:56
1433
转载 c++强制类型转换
强制转化无论从语法还是语意上看,都是c++中最难看的特征之一。但是基于c风格的转化的语义的不明确性及其一些潜在问题。强制类型转化最终还是被c++接受了。 1. static_cast运算符号 static_cast(e),stroustrup让我们可以把它看成隐含转换的显示的逆运算。这个是有一定道理的,基于隐式转化的对象类型我们可以使用static_cast转化运算符号。它
2014-02-10 21:04:27
842
转载 Top K算法详细解析--- 百度面试
问题描述:这是在网上找到的一道百度的面试题:搜索引擎会通过日志文件把用户每次检索使用的所有检索串都记录下来,每个查询串的长度为1-255字节。假设目前有一千万个记录,这些查询串的重复度比较 高,虽然总数是1千万,但如果除去重复后,不超过3百万个。一个查询串的重复度越高,说明查询它的用户越多,也就是越热门。请你统计最热门的10个查询 串,要求使用的内存不能超过1G。
2014-02-02 21:20:21
5198
转载 数据库以及线程发生死锁的原理及必要条件,如何避免死锁。
产生死锁的原因主要是: (1) 因为系统资源不足。 (2) 进程运行推进的顺序不合适。 (3) 资源分配不当等。 产生死锁的四个必要条件: (1)互斥条件:一个资源每次只能被一个进程使用。 (2)请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。 (3)不可剥夺条件:进程已获得的资源,在末使用完之前,不能强行剥夺。 (4)循环等待条件:若干进程之间
2014-02-02 20:22:17
1639
转载 面向对象的三个基本特征和五种设计原则
一、三个基本特征面向对象的三个基本特征是:封装、继承、多态。封装封装最好理解了。封装是面向对象的特征之一,是对象和类概念的主要特性。封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。继承面向对象编程 (OOP) 语言的一个主要功能就是“继承”。继承是指这样一种能力:它可
2014-02-02 19:29:53
1053
转载 Cocos2dx 使用CCLOG实现log输出
Sample CodeCCLOG ("Characters: %c %c \n", 'a', 65);CCLOG ("Decimals: %d %ld\n", 1977, 650000L);CCLOG ("Preceding with blanks: %10d \n", 1977);CCLOG ("Preceding with zeros: %010d \n", 1977);
2014-01-27 21:05:19
15936
原创 C++ 练习错题总结
第二章:1、C++有哪几种数据类型?简述其值域。编程显示你使用的计算机中的各种数据类型的字节数。答:#include int main(){ cout<<"The size of an int is:\t\t"<<sizeof(int)<<" bytes.\n"; cout<<"The size of an short int is:\t\t"<<sizeof(short)<<"
2014-01-25 15:40:19
2398
转载 cocos2dx 新建项目左下角提示错误project creation failed.(与InstallWizardForVS2010.js有关)
无法创建项目,再点击template/msvc里的InstallWizardForVS2010.js却显示错误:无法找到脚本"…InstallWizardForVS2010.js"的脚本引擎"JScript". 解决如下: 可能是你的脚本库被反注册了,试试: cmd cd /d c:\windows\system32
2014-01-15 22:11:28
1750
原创 cocos2dx 实现横版游戏中屏幕随精灵移动
在横版游戏中,实现屏幕随精灵移动而移动,要实现这个,首先要明白这个问题中的变与不变:不变:地图位置;变:精灵的位置、屏幕(或理解为所在图层)的位置;故,说是滚动地图,其实是图层滚动;从不变入手,首先要知道地图(CCTMXTileMap)的两个方法:1、map->getMapSize():地图的图块数2、map->getTileSize():每一个图块的宽高再而分
2014-01-08 16:15:44
4206
原创 应不应该继续做程序员?
最近我在写一个手游,遇到一个问题,很难调试,错误语句百度谷歌也都没有沾边的答案。于是,我开始在想程序员这份工作是否适合我。程序员就是编程序的。程序,大家都知道,是不容错的,一句话、一个词、一个调用用错了,整个程序都是崩溃的。特别是编译无错,运行错误,需要在对程序代码理解的基础上才能进行修改。但一个偌大的程序,是说理解就理解的么?当然,我现在不是个厉害的程序员,准备毕业了,大
2014-01-06 20:37:24
1432
转载 cocos2dx 内存管理
cocos2dx的内存管理移植自Objective-C, 对于没有接触过OC的C++开发人员来说是挺迷惑的。不深入理解内存管理是无法写出好的C++程序的,我用OC和cocos2dx也有一段时间了,在此总结一下,希望对想用cocos2dx开发游戏的朋友有所帮助。C++的动态内存管理一般建议遵循谁申请谁释放的原则,即谁通过new操作符创建了对象,谁就负责通过delete来释放对象。如果
2013-12-31 20:51:34
786
原创 cocos2d-x 问题集。
1、源代码里的do{}while(0)今天写到一个代码: if(!CCScene::init()) { return false; }后来就去看源代码:bool CCScene::init(){ bool bRet = false; do { CCDirector * pDirector; CC_BREAK_IF(
2013-12-30 16:55:53
1033
原创 cocos2d-x 出错集。
1、[vs2010, cocos2dx-2.0.4/2.1.x/xxx]Unable to start program以及新建不了cocos2dx项目(点新建项目框框的OK就立刻弹出原新建项目框)当Debug或Ctrl+F5运行出现如上错误时;解决:这是一个cocos2dx win32环境搭建环节出问题,所以我百度,找到这个帖子:http://blog.csdn.net
2013-12-30 16:10:43
2271
转载 C++词典
虚函数表 对C++ 了解的人都应该知道虚函数(Virtual Function)是通过一张虚函数表(Virtual Table)来实现的。简称为V-Table。在这个表中,主是要一个类的虚函数的地址表,这张表解决了继承、覆盖的问题,保证其容真实反应实际的函数。这样,在有虚函数的类的实例中这个表被分配在了这个实例的内存中,所以,当我们用父类的指针来操作一个子类的时候,这张虚函数表就显得由为重
2013-12-20 19:54:12
11250
原创 个人随想
以前一直很不认同那些把自己想法写在网络上的人,但现在觉得,写出来其实感觉也蛮好的。所以,以后我会无规律、无格式、无目的地写出自己对一些事物的看法,虽然会很随性地写出自己的想法,但还是会有底线的:无抱怨、无羡慕、无嘲讽。接下来,我会基于“两个三无”去写一些希望能优雅、感性的文章。PS:知道会没什么人看,留着自己看也行。: )
2013-12-20 19:32:19
1163
原创 C++练习题,持续更新。
"Pratice makes perfect" 这里的C++练习题目从不同途径获取,答案在评论中给出(答案当然是非唯一的),持续更新中。1、输入一个整数,将各位数字反转后输出;
2013-12-19 10:11:30
4710
10
转载 虚析构函数解析
Ø C++ 指出:当一个派生类对象通过使用一个基类指针删除,而这个基类有一个非虚的析构函数,则结果是未定义的。运行时比较有代表性的后果是对象的派生部分不会被销毁。如果一个类要被另外一个类继承,而且用其指针指向其子类对象时,如A* d = new B();(假定A是基类,B是从A继承而来的派生类),那么其(A类)析构函数必须是虚的,否则在delete d时,B类的析构函数将不会被
2013-12-15 15:53:24
968
原创 关于Cocos2d-x android的环境搭建、Demo运行的注意事项。
Cocos2d-x android下的环境搭建,网上教程太多了。总的来说是需要:JDK、android-sdk和android-ndk、cygwin以及Cocos2d-x。安装相应的这些之后则在各自的文件夹下指定的文件配置好相应的路径即可。详细教程:http://www.cnblogs.com/lhming/archive/2012/06/27/2566460.html
2013-11-13 16:33:40
1674
原创 经典同步问题之哲学家进餐
问题描述:假设有5个哲学家,他们把一生都拿来思考和吃饭。他们共用一个圆桌吃饭,有一锅米饭,每个人两边有两根筷子。当某位哲学家思考时,他与其他同事不交互。时而,他会感到饥饿,并试图拿起与他相近的左右两根筷子。当5个哲学家同时饥饿,且同时那起一根的筷子,他们会永远等待,陷入死锁。就算没有发生死锁,也会发生“资源耗尽”。分析:这是一个需要在多个进程之间分配多个资源且不会出现死锁和饥饿的典型例子。
2013-10-15 16:16:47
1906
原创 Android游戏制作退出框遇到的问题:object not locked by thread before wait()和Can't create handler inside thread
void drawEndImg() { if(lives.size()==0) { Rect rect1 = new Rect(0, 0, endImg.getWidth(), endImg.getHeight()); Rect rect2 = new Rect(0, 0, cxf_width, cxf_height); cxf_thread = false;
2013-07-23 15:36:36
23259
1
原创 java使用Iterator迭代出现"java.uitl.ConcurrentModificationException"错误原因及解决方法概述
最近在模仿着写一个雷电游戏,其中有一段源代码是这样的: for (int j = 0; j < enemys.size(); j++) { Enemy ene = enemys.get(j); if (ene.y < height) { ene.draw(canvas, x); } else { enemys.remove(ene); }
2013-07-02 21:55:22
1985
原创 Java关于抽象类能否被实例化的问题
首先明确地说:抽象类不能被实例化。我对抽象类能否被实例化产生疑问始于我看到一句话说:子类实例化会先实例化父类。而且,自己也知道,抽象类作为父类,其子类是能调用他的属性和已实现方法的。这证明抽象父类在内存是有一定空间的。(百度百科说:实例化其实就是在内存中开放一个空间用于存储新的产物,即对象)后来发帖问了,总结得到:子类实例化会先初始化父类,父类初始化并不是又创建一个父类对象,而是把父类中定
2013-06-25 21:16:14
8710
3
原创 Android游戏源码的分析、疑问与交流
最近在eoe下了一个雷电游戏源码来看看,想模仿着自己写一个来着。但看着看着,发现里面包含的内容确实是博大精深。如果你也在看这个代码或是任何一个普通的android游戏源码,希望大家可以在这里互相交流以共同进步。
2013-06-25 20:41:38
1251
原创 Android列表及其长按事件
列表三元素:1、展示列表的View(ListView)2、适配器(即View与数据的中介 - adapter)3、数据(data)public class MainActivity extends ListActivity { private List> data; @Override public void onCreate
2012-10-28 12:08:13
1285
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人