All Stories

我的方块W.I.P #14

  一边看MSDN,一边敲键盘,终于可以实现属性对话框的各种基本功能了。Apply、OK、Cancel都可以按标准Windows应用程序的样子做动作了。要吸引别人在某平台上做开发,详细的文档和丰富的例子是一大诱惑呀!  看到CSDN Blog上有人在讨论wxWidget、QT、GTK+,反正我觉得,在Windows平台,要省事就用VCL、如果想用MS技术,用就WTL、或者就纯手工打造SDK慢慢画吧,就像我现在写方块一样。游戏平台的丰富程度令人咋舌,手机、掌机、家用机等等等等,对于小游戏来说,手机和掌机应该是以后可以考虑开辟的一块市场,对于网络游戏,像QQ游戏那种,Linux版或许也可以吸引一部分用户,不太确定,可能国外的用Linux的人更多点吧。  把属性对话框的界面部分全部实现后,再弄LuaSuck吧,有了LuaSuck才能弄Skin和游戏逻辑脚本支持,不过Skin只要能读取Lua脚本中的几个变量的值就够了,只要确定了接口就行了,游戏逻辑脚本,其实也就是调用几个固定名字的Lua函数,不过LuaSuck还是要做的。另外就是,要写个Skin打包工具,可以比较直观地在现成的图片上定义相应的属性,生成Lua配置脚本,再用7z打包。完成了这些,才能再考虑联网的问题!晕!

我的方块W.I.P #13

  实践是一种很好的学习方式。加了个类,也算是学习别人的样子,尽自己的力抽象一下,把配置模块提取出来了。属性对话框得花很多时间啊,这时就体现出一个好的GUI库的必要性了,可以大大地节省编码时间。那只给我一个念头:以后除了要用DX的游戏程序,其它的一定不再不用VCL了,VCL太好用了,其它的Framework也没试过,不喜欢MFC的结构,WTL不知道咋样。或者自己写一套简单的?看CSDN Blog上有个人一直在宣传自己做的一个基于WTL的GUI库嘛,我不需要非常齐全的功能,我只要一些常用控件就行了。  现在发现Singleton是种很有用的技巧。在使用过程中发现,如果一个类被实现为Singleton了,一定要顺便把析构函数也声明为非public的,这样就不会不小心把它delete掉了。Metaprogramming还是非常值得学习一下的!

芳林过来了

  芳林来zte培训10天,我们几个在这儿的同学就打算一起见个面。周五下班,坐上391直奔华强北,xcc出差南京去了,就剩下afei了。然后三个人在漓江又一轩吃了一顿。芳林这猪,变这么肥,从肚子到脸,全都变胖好多,想当时在学校,多瘦小一个人呀!由于是晚上时间,也不是很想再去哪里玩,吃过饭,就随afei把芳林送上zte学院的车。然后我再把afei送到她回家的公交车上,我才自己去坐车回来。我觉得我很喜欢这种感觉,偶尔有同学过来,然后可以聚一下,了解一下别人的生活学习工作状况,不同于我们几个在这儿的人的状况。  回到家后看小说看到3点多,然后上床睡觉,结果第二天早上9点多就睡不着了,起床上网,无聊。洗了个澡,等到12点半过,去坐车,项目组活动,去梅林K歌。到那里已经是1点了,结果2个包间里只有3个人,晕,我还想我已经迟到1个小时了呢。起床开始一起没吃多少东西,看到有吃的,就把那些零食都消灭了。人陆续多起来了。因为用力在那里吼,哑了。大部分流行过的老歌都还是能唱的,至少高潮部分是会唱的,只是嗓音不好啊!尤其是女歌手的歌,唱不上去,晕!还逗了一下教授和疯丫头一会儿,哈哈,篡改歌词还挺好玩的,以前上中学的时候经常这样玩儿,大学里就很少了,因为大学里都只是安静地在电脑上听歌。  一直k到6点,然后老大说,一起去吃饭,果然,还是有点在预料之中的,在疯丫头的建议下,去吃韩国烧烤了。这边这桌的人个个是大食量的,上了就要抢,昏,呵呵!

小丫头又跑到公司去上网了

  小丫头又跑到公司去上网了。我问她怎么就为了上网就跑过去了,她说想出来走走,顺便想写一下总结。然后两个人就东拉西扯了一会儿。其实我们聊的话题很少很少,每次我都是搜肠刮肚地想些事儿来说说,而且很多时候我发消息过去的时候,能预料到她会回复什么内容。我只是不想让它冷场,我不是不善言辞吗。小丫头脾气很大,出乎意料地对我破口大骂,我都开始怀疑是不是她的QQ被盗了。我还想我是哪里招惹到她了,会发这么大火,骂这么凶。不过马上,她说因为没人骂,就骂我了,我才舒了口气,原来我没招惹她。后来她快要下的时候,告诉我为什么她最近心情不好。其实我也是这样过来的,走出校门走向社会后,总会遇到一些以前没遇到过的事儿。然后谈起以前的事,心情超级沉重。小丫头是个固执而倔强的人,幸亏我们不谈恋爱,不然肯定会为一些其实不应该成为问题的事情经常吵架吧,呵呵。我也自认为有点霸道有点顽固有点小气,我想管得别人太多了,其实我完全可以不理会。  有点累。我用我的方式解决问题,但一定要得到有些人的认可才行。我不能忍受别人曾经对我的奚落、嘲笑和无视,我不会装作若无其事地坦然接受这一切,我在乎得很。我宁可重新另外找一个新的开始,也不愿再回头,乞求同情和怜悯。我对小丫头说,我的挑剔,来自于对自己的信心。还好,VC和GCC其实都不支持可变数目的模板参数的,那天是太紧张了,看到的其实是LuaTinker里另外一种奇怪的语法。hoho~~~

LuaSuck #1

  在看LuaTinker代码的过程中,惊奇地发现,它居然用了可变数量的模板参数!!这个这个这个,对我来说,不啻于晴天霹雳,《Modern C++ Design》上可是写着“Variable template parameters simply don't exist.” 我打开VC2005又试了一下,明明白白,VC7.1到VC8,都是可以这样用的。到底是哪里出问题了,谁错了……  LuaTinker在处理C++ free function的时候,是把pointer to function当作light userdata压入了virtual stack,网上到处都流传着一份不知道从哪里散发出来的用proxy手法解决的方案,感觉不如LuaTinker的爽。

试试blogger.com的贴图功能

hoho~~~这就是传说中的疯丫头,啦啦啦啦~~~

我的方块W.I.P #12

  在好几天前对MSDN的一番研读后,终于把PropertySheet显示出来了,其实真的很容易,很简单,至少比想像中的简单多了。唉,用惯了VCL,再来用SDK,实在觉得吃力。要是以前,随便拖个Form,放个TPageControl,早就完事了。现在,里面的4页Dialog一个个描就不说了,在BCB里也是需要的,然后要写Dialog的消息处理函数,一个个标准的回调过程, VCL里就只需要对自己感兴趣的事件重写处理函数就行了。然后是注册表操作,VCL里的TRegistry也是多方便,多健壮的。自己写一个类似的封装吧,不但花了不少时间,还没有TRegistry好用,昏倒,不过现在勉强能满足当前的需要了。  之后要做的,要把各个Dialog消息处理函数填完,然后是LuaSuck。这几天也读了好几遍《Programming In Lua》,还有它的Reference Manual,对Lua的了解又进了一步。Lua为了屏蔽数据类型的差异以及编码风格的统一,*所有*的与C/C++交互的数据都是通过一个virtual stack来完成的。一定要记住这一点,所有的操作都是针对那个virtual stack来的。LuaSuck的目标和TclSuck类似,①可以使C++程序与Lua程序里的变量互通,②可以在C++程序里自由调用Lua的函数过程,③可能方便地用C++函数来扩展Lua。虽然SWIG应该能很好地完成①和③,但在上次写TclSuck的过程中,我深刻地体会到库的编写的乐趣,远远大于库的使用的乐趣(晕死,真的像Andrei Alexandrescu说的那样了)。

方块乱弹

  稍微打了一下交道,发现他写程序的经验好像还是挺丰富的,代码写得工工整整的,要么就是思维比较活跃,有些小技巧什么的,挺实用的。虽然之前看那程序的外在表现,觉得很多细节什么的都没考虑,看了一下代码结构,才觉得真是下了好多心思的。而且他说,如果要做网络联机的,要不卡的话,还得花些功夫。也许我是太低估了这事的难度了,我写程序从来不考虑什么架构之类的,上来就编码,遇到过不去了,才会停下来,然后发现很难再改了,这样下去,永远只能单干,只能做fans,做不到professional。  现在大概了解了一下,他是怎么实现录像功能了,原来每个动作他都是会保存一下的,每个动作有唯一的编号,以及可选的参数,估计在保存动作的时候也会保存一下时间偏移。hoho~~~  要走的路很长啊,要学的东西很多啊!

水至清则无鱼,人至贱则无敌

  所谓人不要脸,天下无敌,我为什么不让自己无敌呢?  白天和xcc还有他gf去爬小梧桐山了,像平常上班时候一样起了床,匆匆收拾了一下便出门,辗转到了莲塘,然后等了一会儿,等他们两个来了,一起走到小梧桐山,开始爬,人还真多。真是上山容易下山难,下山道开始一截好窄好陡,只敢扶着扶拦慢慢往下走。中午饭本来打算和阿菲一起吃的,结果她干其它事情去了,于是三个人就随便在路边找了个小馆子吃了一顿。然后去阿菲屋里,她回来了,四个人就在那里吃桔子、栗子,吹牛摆阵,一下午就这样过去了。阿菲原先打算去她舅舅家的,后来不知怎的,我说晚上去吧,晚饭和我们一起吃,居然答应了。四个人奔赴华强北民间瓦缸煨汤,大吃一顿,撑死了。  想想,我还真bt,自己不想要的却又想锁着人家。  得到当前所有榜单的源代码了,之前还想他是怎么调试的,原来留了这么一手的。