Cocos2D基本概念
Posted by john in Uncategorized on December 21, 2011
基本概念
Cocos2D由下面这些基本概念:
- Scenes
- Director
- Layers
- Sprites
Scense 场景
场景是一个相对独立的流程,对于游戏来说,可能会有这些场景:开场动画,主菜单,第一关,过场动画,第二关。。。。最终过关动画,最高分等等。场景也常常叫做screen或者stage。
每个场景包含多个Layer
Director 导演
CCDirector 负责场景间的调度,也就是怎样,何时从一个场景切换到另一个场景。
CCDirector是一个共享的对象(singleton),它知道当前活动场景,并且维持一个场景堆栈,用来实现(scene calls,也就是暂停一个场景,切换到另一个,并且可以回到暂停的场景继续执行)。
同时,CCDirector还负责初始化OpenGL ES。
Layers 层
CCLayer 对象的size是整个drawable区域,并且可以自己绘制自己。每个层可以是透明,半透明或者部分透明的(例如,不透明的层上有一些透明的洞,可以看到下面的层)。层定义了表现和行为,所以大部分的程序量是编写CCLayer的子类。
CCLayer也是定义事件驱动的地方。事件在各个层中从上到下传递,直到有一层处理它为止。
Cocos2D也提供了很多现成的CCLayer子类可供直接使用。
Sprites 精灵
cocos2d’ sprite是2D的image,可以移动,旋转,缩放以及动画。
精灵可以有父子关系,父精灵移动,旋转等变换时,子精灵也跟随变换。
game engine again
Posted by john in iphone, Uncategorized on December 6, 2011
下面介绍几个重量级的game engine
- Unity3D是一个完整的跨平台的game engine,同样的source可以在PC,mac,网页,ios,android和游戏机等多个平台运行(当然对于不同平台的license费用不同)。
- UDK – Epic公司的Unreal Development Kit,鼎鼎大名的Unreal engine, 听说过这些游戏么?他们有一个共同点,都使用了Unreal Engine。Gears of War, Mass Effect, BioShock, Unreal Tournament, Deus Ex, GRAW, Red Steel, Borderlands, Brothers in Arms, Homefront, Mirror’s Edge, Singularity, Rainbow Six: Vegas. UDK支持各个平台,包括IOS和android的游戏开发,对于教育和非商业应用免费,商业应用需要商业license,具体为99美金的 license费用。另外收入超过5万美金的部分要分给Epic 25%的分成
- Panda3D 是一个免费开源的3D渲染和game engine,采用修改过的BSD license,可以用于商业开发。Panda3D的核心使用C++写成,提供pythyon bindding所以游戏开发的大部分工作都可以用python进行。Panda3D是由迪士尼为他们的大型多人在线游戏“Toontown”(卡通城) 而开发的。2002年它作为免费软件发布。Panda3D 现在由迪士尼和卡耐基梅隆大学娱乐技术中心联合开发。
free ios game engine
ios的游戏开发,离不开game engine, 从零开始做一个game engine是不可想像的。
maniacdev 介绍了几个开源的game engine,其中有几个比较引人注目。
Burtons Media Group 也有一篇介绍。
3D engine
- Galaxy Game Engine 是个完整的game开发环境,包含3Dengine,世界编辑器等等,BSD license
- iSGL3D 似乎只是个3D graph engine,虽然有利用iSGL3D的游戏,但是如果缺乏完整的游戏开发支持,基于iSGL3D的游戏开发还是比较困难的。
2D engine
- Cocos2D 是一个成熟的2D game engine,包含游戏需要的所有功能:Physics,Sound,Level Map parser等等,有很多成功实例。MIT license
- Sparrow Framework 是一个轻量级的2D game engine,容易理解,特别是有flash开发经验的人容易上手,简化版BSD license
django 403 error
Posted by john in Uncategorized on August 8, 2011
遇到一个奇怪的问题,一个很简单的django页面,GET方式可以正常访问但是在POST报403错误。
后来查到是1.3版本settings.py 文件中 ‘django.middleware.csrf.CsrfViewMiddleware’, 造成的,把这句注掉就可以了。
iPad 2
iPad 2已经到手半个多月,32G的型号已经用了一半。基本都是各种app。
最初几天都只能在app store下载免费的,后来发现一个程序叫iReSign,可以用开发license对已经破解的ipa重新sign,这样就能装到我的ipad里了。
不过开发license的test期间只有三个月,希望那个时候geohot或者comex已经搞定了吧。
a photo by bruce zhou
Posted by john in Uncategorized on May 1, 2011
nice work, maybe more detail in the sky is better
multiMan support NTFS now
前天升级了PS3上的backup manager,据说已经能支持NTFS了,经过一番折腾,果然可以。
升级过程很简单,在multiMan里面按R3就可以自动下载升级pkg,目前最新版本是0.16.03,下载完毕后会有提示,然后退出到XMB里安装pkg就可以了。若要支持NTFS的外接硬盘,需要编辑USB.CFG文件。通常multiMan安装在/dev_hdd0/game/BLES80608目录下,USB.CFG位于按装目录里的USRDIR里,需要填入vendor id, product id和volumn number。通常volumn number是1,vid和pid可以在windows的设备管理里面看到(mac 上可以从apple menu的系统概述-关于本机里查到)。对于不同的外接硬盘要写不同的vid和pid,有点不够方便。
搞好USB.CFG后,在multiMan里面按select+/\(三角)按钮,就可以开启NTFS支持,屏幕下方应该出现USB pfs driver的icon。
multiMan的配置文件里默认可以读去usb盘的GAMES和GAMEZ目录,所以只要这两个目录里的游戏都会显示出来,不过暂时还不支持中文的文件名/目录名,我就是给这个问题困惑了好久。(ps3内置硬盘里中文的目录名multiMan可以正常显示的)
What can I do with AppleTV
AppleTV破解之前在中国只是悲剧的玩具。

第二代AppleTV,去掉了内置硬盘,也就成为一个纯粹的流媒体播放装置了。大概有这么几个玩法:
1 作为AirPlay的客户端。现在的iOS设备以及Mac上的itunes都支持AirPlay,可以把AppleTV指定为AirPlay的目标,这样就很方便的把iPhone里面的视频什么的送到大电视上,大家一起看了。
畅想一下,未来是不是可以把游戏画面也送过去?
2 AppleTV本身也有TV,电影,photo等几个应用。 TV嘛,就是去itunes store里面去租电视剧,基本上是$0.99一集,租了之后,要在30天之内开始观看,一旦开始观看,要在48小时之内看完,估计48小时之内应该可以看多遍吧。电影应用里面有预告片,租片等。
实验了一下(有少数片子租金为0,片段之类),速度相当相当慢。前面说了AppleTV2里面已经没有硬盘了,只是有了几个G的Flash作为缓存,所以在TV,movie的播放都是VOD stream,我用的是电信的8M ADSL,根本无法使用。
3 Netflix, AppleTV里面集成了Netflix服务,PS3, wii等也都有。需要美国IP,每个月最少$8,有标清和高清节目。以前我在电脑上试验过,标清可以看,高清速度不够。
破解之后,装上XBMC可玩的就多了,下回书再说。

