Lisp的给力特性(V.S. Python3) 第二篇
学了 Lisp 以后, 作为一个 C++ 程序员对 Lisp 的特性的一些简单碎碎念, 第二篇.
学了 Lisp 以后, 作为一个 C++ 程序员对 Lisp 的特性的一些简单碎碎念, 第二篇.
学了 Lisp 以后, 作为一个 C++ 程序员对 Lisp 的特性的一些简单碎碎念, 第一篇.
Cocos2D Mac版缺少工程模板,作者在开源社区找到了现成模板,感叹其强大,让开发变得简单。
转自:http://blog.sina.com.cn/s/blog_62c6329f0100hmia.html 翻译了一篇blizzard在GDC2010上的演讲。感谢cyndi的校正和粽子的润色。有不对的地方,还请大家指出。
在家呆的时间有点久,比较随意,特别是作息,经常通宵看书学习,最近准备重出江湖(没那么夸张,就是再次工作而已……)于是在想调整作息从美国时间到中国时间,但是却比较不适应,感觉白天头晕,四肢乏力,困乏不堪,喝了咖啡都不给力,晚上四眼放光,躺在床上看最高深的天书也不催眠。。。。。。作息的调整看来不是一天两天的事情,常常强行调整结果无功而返。非常无奈,一筹莫展。
然后,碰巧最近帮一个朋友做iphone的摄像头的相关项目,(类似大头贴,即时在视频信息上添加图像)因为apple没有开放类似的API实现功能,只能通过一种很扭曲的方式
来实现。可以说是类似hack,再加上后期在此之上的一些与Cocoa touch相关问题(我对Cocoa Touch的学习并不多),真是那个绞尽脑汁,过程中虽然没有七窍生烟,也是头脑供血长时间过大。完成后,一时有点高中做数学题目的感觉了,呵呵,那久违的感觉啊,突然想到那时候数学老师给我们讲的一个数学多好的故事,大意是某商业人士,虽然从事的工作与数学关系不是非常大,但是平时都以做数学题为乐,无聊的时候就做几道。。。。。。当时听着感觉非常不可思议,没事那么费脑子干什么啊,还嫌脑细胞死的不够多啊,但是当离开了高中以后,发现能够动用脑细胞的时间越来越少,即时是毕业后,用了几乎所有的业余时间来学习,那也主要是一种知识积累型的学习,说实话,还真的不是那么太需要脑力。除了搞了一段时间反汇编,还有点意思,甚至,很多时候,我都是研究怎么更加节省时间脑力,考虑更加快速的完成任务,比如学习更高效的语言(比如简单的事情不用C++而用Python),比如用更方便的UI库(比如抛弃MFC使用Qt),以至于到现在,有种脑细胞旧的不去,新的怎么来的感叹,(我是认为脑袋越用越活的)难怪世上有那么多杀脑细胞的游戏了。这些游戏虽然也是我平时的最爱,但是最近其实玩的也是越来越少了。
再于是乎,有了个杀脑细胞的计划。。。。。。。。简单的说,弄点难点的,需要费脑力的事情来折腾一下,好像很久没有这样折腾过了。。。。。。但是鉴于生活还是得继续,暂时把一些计划定在计划内,也就是平时都可以学习的东西,然后,计划外的,无功利的,我就每天拨两个小时吧。。。。。不干扰正常生活,同时也不让生活过于无聊^^曾经有人说我的想法有些自虐。。。。。暂时这里借用一下。。。。。。
关于UI的选择,看过一篇比较有意思并且全面的文章,但是里面谈论到的是只做网游时,而对于iPhone这种硬件限制远远多于PC的环境来说(特别是内存紧张),使用Ogre本身就是一种很奢侈的事情了,在UI部分消耗有很多内存,那就几乎没有办法去创建稍微复杂点的场景了,(我尝试过Ogre+Bullet+OgreBullet,在载入一个不复杂的场景,仅包含几十个Box的时候,我的touch 3代就会报内存警告,并且强制程序退出了)所以,在选择UI时,有更多不同的考虑,当然,那些在PC下都有效率问题的UI更加是不用考虑了。
首先说需求,很明显做iPhone游戏,特别是比较简单的iPhone游戏,对UI的需求比做网游要求还是少的,对于我来说,按钮与文字的显示就已经能够包含90%以上的需求了,要是按钮还能够多点定制的灵活性,文字还能够显示中文,然后还有个进度条(用于loading)就完美了,没有其他更多的需求。唯一
知道需求后,就会发现,**CEGUI
这个成熟并且有足够灵活性的UI是很多公司开发网游的最爱,但是还是太庞大,太复杂了一些。再加上这里有个人总结过iphone下UI的选择
,谈到了CEGUI在iPhone下的问题,所以不予考虑。(虽然这个我以前用过,可能上手会快一些)我认为在前面提及文章中作者最后选择的MyGUI可能都复杂了,加上在网上找了找相关的信息,发现iPhone下也会有一些问题
。并且,我发现官方版本的MyGUI
甚至没有MacOS版本。这个问题太严重了,我还是不想再做吃螃蟹的人了,我需要的东西是那么简单。。。。于是,我决定尝试Ogre的内置UI,(可惜文档太少)假如内置UI不能解决问题,再去考虑其他的UI。
本文介绍了为iOS编译Ogre 1.7.2调试版的方法,并提及在iPad上运行时触摸响应缓慢的问题。
看”参考1”碰到的第一个算法,有点意思,总结一下,特别是因为”参考1”没有找到随书的源码下载(Pearson的源码都要教师申请才能下载),自己写点源码,也算是桩乐事。
因为在我们画图的时候,都是以vertex为基础的,所以算法都是以直线(实际是数学中的线段)的起点(x0,y0)加终点(xEnd,yEnd)作为输入来绘制直线的。
起始目的很简单,整合Bullet及Ogre,找个能够生成.scene和.bullet文件的建模工具。
折腾一晚上Bullet及Ogre相关的东西,基本上就像爱迪生发明灯泡一样,得出了N个失败的教训,总结如下,大家不要再走弯路了。
1. Blender, 开源产品,我寄予了厚望,结果却是大大的失望,Blender的Ogre插件那个弱。。。。。Mesh导出还算可用,但是不能一次导出多个,要导出多个你就去吐血吧。而Scene导出插件简直就是跟你开国际玩笑,只能导出scene文件,需要你自己用Mesh插件导出所有的模型,于是乎,两者合作的结果是,你需要一个一个的导出mesh,然后再用Scene导出插件导出Scene。(不过经测试,的确可用)这个就算了,Blender内置bullet物理支持,编辑非常方便,在自己的Game Engine中模拟也是几乎完美,还支持constraints,我都惊叹了。。。。结果是,无法导出.bullet文件,用了erwin提供的改版blender,发现没有菜单,于是乎,google出了下列脚本:
Bullet据称为游戏世界占有率为第三的物理引擎,也是前几大引擎目前唯一能够找到的支持iPhone,开源,免费(Zlib协议,非常自由,且商业免费)的物理引擎,但是文档资料并不是很好,Demo虽然多,但是主要出于特性测试/展示的目的,会让初学者无从看起,一头雾水。我刚学习Bullet的时候困于没有好的文档及资料,非常没有头绪,折腾了很久,所以就发挥没有就创造的精神,写作及整理此文,(以整理资料为主,自己写 为辅)希望大家在学习Bullet的时候不要再像我开始一样没有头绪。因为我实在没有精力去完成一个包含Bullet方方面面的完全指南,所以本文只能是不完全版本,这个就请大家谅解了,但是期望能够真正的完成一个简单的由浅入深的教程,并提供尽量详尽的额外信息链接,只能说让初学者比看官方的WIKI和Demo效果更好,大家有好的信息和资料而本文没有包含的,也请告诉我,我可以在新版中添加进来。因为我学习Bullet的时间也比较短,有不对的地方请高人指点。
前段时间简单的学习了一下Bullet,牵涉到图形部分的时候主要都是研究Bullet与Ogre的结合,所以使用了OgreBullet这个Ogre的Addon,其实真正的学习当然还是直接利用Bullet本身附带的简单的debug OpenGL绘制就好了。本文就完全以Bullet本身的Debug功能来学习,虽然简陋,但是可以排除干扰,专注于bullet。也许除了本文,会有个额外的文章,稍微研究下Ogre与Bullet的整合和分析一下OgreBullet的源码。