Cocos2D基本概念

基本概念

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,可以移动,旋转,缩放以及动画。

精灵可以有父子关系,父精灵移动,旋转等变换时,子精灵也跟随变换。

No Comments

game engine again

下面介绍几个重量级的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 现在由迪士尼和卡耐基梅隆大学娱乐技术中心联合开发。

, , , ,

No Comments

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

,

No Comments

upgrade to 321

升级到最新的wordpress3.2.1,貌似没有问题

No Comments

django 403 error

遇到一个奇怪的问题,一个很简单的django页面,GET方式可以正常访问但是在POST报403错误。

后来查到是1.3版本settings.py 文件中 ‘django.middleware.csrf.CsrfViewMiddleware’, 造成的,把这句注掉就可以了。

No Comments

iPad 2

iPad 2已经到手半个多月,32G的型号已经用了一半。基本都是各种app。

最初几天都只能在app store下载免费的,后来发现一个程序叫iReSign,可以用开发license对已经破解的ipa重新sign,这样就能装到我的ipad里了。

不过开发license的test期间只有三个月,希望那个时候geohot或者comex已经搞定了吧。

No Comments

Sunrise@PoonHill

Sunrise@PoonHill by johnskiller
Sunrise@PoonHill, a photo by johnskiller on Flickr.

第一次看到日照金山,壮观的雪山日出

No Comments

a photo by bruce zhou

IMGP6889 by Bruce Zhou
IMGP6889, a photo by Bruce Zhou on Flickr.

nice work, maybe more detail in the sky is better

No Comments

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可以正常显示的)

, ,

No Comments

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可玩的就多了,下回书再说。

1 Comment