求指导。一些问题求答。

在年头的时候。做了一些关于html5在移动设备的开发调研,主要针对css3,canvas的性能和功能衡量,一些android和ios设备的浏览器核心的测试,还有各种html5游戏引擎的测试。最后选定了cocos2d-javascript作为基础,进行功能的裁剪,针对移动设备的优化和扩展,形成自己的游戏引擎,后来实际游戏开发过程中(只是小小的悠闲游戏),再不断的修正引擎,遇到的问题大部分都只能通过规避的手段(可能是代码写得不好,或者触犯了一些浏览器得机制或bug)。下面想了解一下cocos2d-html5的情况。
1.cocos2d-javascript和cocos2d-html5的关系?我估计是没关系了,呵呵。就是全新的基于cocos2d-x接口实现的js引擎吧?
2.在ios上能支持多声音同时播放吗?(就是背景音*1,音效*N,这里应该是两个问题,1.ios好像从4.1开始不支持默认打开网页播放音乐,2.ios的audio标签不支持同时播放)。
3.能支持加载webfont或者自己的font吗?html5标准包含了自定义字体的。遇到的问题主要是文字未加载完,canvas上绘制是空白。所以问题主要是font文件的加载。
4.如果使用的图片量稍微多一点,大概就是2048*1024或更小的图片量(我指所有图片加起来的尺寸大小小于这个),从性能监视器可以看到。。内存占用居高不下,比较容易发内存警告,一旦发内存警告,页面就会卡死3-6秒。
5.touch的响应是否已支持了?延时大概多久?做下来的感觉延时挺长,效果不理想。已经preventDefault了。
6.另外想做一个同时有缩放,移动,透明度,旋转的星星特效,尝试了采用js定时重新动态绘制的方式和预生成每100ms一张的图片,然后js定时绘制(只修改绘制位置)的方式。效果都完全不理想,已经做了重绘区域优化了。只重绘更新区域。最后去掉了。看着实在不行。我想了解一下cocos2d-html5能多做一些缩放旋转的demo吗?
7.是否考虑加入粒子系统?这个在前期也尝试过。。效果相当不理想。

ps.项目过去久了。。现在有些问题都想不起来了。。主要都是些没解决的问题。最后大部分都通过规避的方式了。
最近在使用基于css3的edge工具在实现下一个项目。团队战略限制在html5。最近去cj听了下课。遗漏了林顺老大的cocos2d-html5的讲座,实在遗憾。

问题1:cocos2d-html5和cocos2d-javascript的最大区别是,前者和cocos2d-x JS Binding引擎以及cocos2d-iphone JS binding引擎保持API一致,可以以Hybrid的方式发布。另外,cocos2d-html5相对于cocos2d-javascript,移植的功能较多,有社区支持。
问题2:iOS safari浏览器里依然无法做到多个声效叠加,apple的限制,没法度。不过Hybrid的方式,无需考虑这个,我在CJ上有演示过声音效果了。
问题3:支持自己的font,用CSS3的方式加入;也有BMFont,这个不是问题。
问题4:你可以分批次加载,相信你所有的资源不是同时使用的吧。但是,就你列的这个图的大小,应该是没事才对。改天我试验下。
问题5:touch效果不错,MoonWarriors的测试例你可以体验下。即将发布的beta版本支持多点触摸。
问题6:你说的这个效果,不是问题。CJ上,我演示的是2000个sprite同时旋转放大,pc上还能有24帧左右。
问题7:粒子系统已经有了,可以看测试例。我们捕鱼达人也在用,无压力。

CJ上讲的内容主要是性能优化技术以及优化之后的水平,演示了JS binding的游戏实例,其他可以忽略。可以上github下载最新代码,看各个测试例的效果,有问题可以论坛交流。

— Begin quote from ____

ChironChan 发表于 2012-7-31 14:27 url

谢谢指导。
1.MoonWarriors看了。itouch4上QQ浏览器,touch没生效。
2.我上面说的都是基于ipad1/2的。问题 …

— End quote

MoonWarriros可以下载github最新的代码,这个版本才加了触摸控制,也做了JS binding的适配。

字库也属于资源,我们的建议是所有使用到的资源,在使用之前都预加载好,否则有各种错位,各种异常。
不过,你提到的这个canvas绘制出来是空白的问题,我还真没注意到,我们做了预加载。。。。

— Begin quote from ____

ChironChan 发表于 2012-7-31 14:32 url

另外还想请教一个问题。。现在的html5游戏框架不是基于canvas就是基于css3.。如何在两者只见选择?为什么co …

— End quote

Cocos2d-html5有三种渲染方式:canvas,webgl(正在做),canvas+CSS3。

为什么Cocos2d-html5不选择纯CSS3来做渲染?理由是:1. 当sprite数量多的时候,CSS3性能并没有优势,内存也大 2. CSS3无法做alpha效果,也无法做tint效果,我们需要和Cocos2d-x保持一样的API。

现在已经实现的canvas+CSS3的渲染方式,可以由开发者选择性的将游戏里面的某些元素,特别是游戏最上层UI层,调用一个API以CSS3的方式来渲染,这样就不需要每帧都去重新渲染这部分。(实际上可以选择全转,就是纯CSS3了,但是不建议)。

关于问题2,当时也是采用混合的方式。自己实现一个ios壳来处理。

另外还想请教一个问题。。现在的html5游戏框架不是基于canvas就是基于css3.。如何在两者只见选择?为什么cocos2d-html5选择了canvas而不是css3?

谢谢指导。
1.MoonWarriors看了。itouch4上QQ浏览器,touch没生效。
2.我上面说的都是基于ipad1/2的。问题6在pc端测试也没遇到问题。
3.粒子系统很有兴趣。下去有时间再看看。
4.问题3的字体问题我的意思是采用css3的方式加入后。浏览器后台在下载字体,但未下载完之前用canvas显示文字会出现绘制不出东西的情况。不像html标签采用默认字体替补的。
5.问题4可能是我们自己代码的问题吧,图片是分批次,并且用texturepacker合并一些小图。