如何使用css,把div设置为一个椭圆容器,在做html页面开发时,我们一般都是使用div来做容器的,如果你需要一个椭圆形的容器,我们可以使用div来实现的,下面来看一下。......
如何在html5中Cocos2d-x中整合LiquidFun
Cocos千万级手游的摇篮,一直致力于让尤其开发变得更快捷,高效,我们今天来介绍一下如何在html5中Cocos2d-x中整合LiquidFun。
方法/步骤
LiquidFun是谷歌基于原本的Box2D改造的,可以生成带有流体物理性质粒子的一个扩展库。Ricardo利用这个LiquidFun,将它整合到了Cocos2d-x3.0中,做成了2个Demo,使我们可以直接生成带有流体物理性质的粒子。
下面这段话摘自LiquidFun的官网地址:
通过基于Box2D的功能,LiquidFun实现了一个可以模拟流体的粒子特效。游戏开发者可以在他们的游戏中通过使用它来实现游戏中的力学,或者逼真的物理特效。游戏设计者则可以通过这些库来设计出精彩的流体互动的游戏体验。
通过上面这段话可以看出,本质上LiquidFun是一个在Box2D之上追加的一个扩展,它通过使用粒子系统来实现模拟流体粒子的效果。你可以通过下载安装安卓上的LiquidFun-Testbed和LiquidFun-EyeCandy来测试它。
Cocos2d-x已经整合了Box2D,为了整合LiquidFun,我们需要先把一个新的类整合进来:b2ParticleSystem
LiquidFun中的b2ParticleSystem
为了合并整合,我们需要一个能够懂得如何渲染b2ParticleSysytem的Cocos2d-xNode。b2ParticleSysytem提供以下4个有用的方法:
理想情况下我们本应该通过重用cocos2d::ParticleSystemQuad来做上面提到的渲染,但是因为以下几个原因这样做是行不通的:
cocos2d::ParticleSystemQuad不支持改变它的吸引子(这是一个设计上的缺陷,之后我们会修复它。)这种情况下应该用一个空的吸引子。
ParticleSystemQuad是通过Quads来实现的,而不是Points。尽管Cocos2d-x是支持Points的(如Cocos2d-xv1.0,它依旧没有办法正常工作因为Points和colors应该在一个交错的数组中。
另一个问题便是Box2D和Cocos2d-x之前的坐标系转换问题,不过这个问题可以很容易解决
Pointsvs.Quads
使用Points的主要缺点在于,你没有办法旋转一个Points,这也正是我们在Cocos2d-x上不使用它的原因。
但是Points也有很多优势,它跟Quads比起来只需要更少的内存,这意味着它可以运行的更快。下面举一些使用Point的与Quads不同的情况:
Point的坐标只需要一个点(Quads需要4个)
Point只需要1种颜色(Quads需要4个)
Point不需要使用UV坐标(Quads需要)
Point如果你需要使用不同的大小的时候,你可能要传一个浮点型的数组。(Quads不需要)
Point在做碰撞检测的时候会消耗比Quads更少的资源。
值得注意的是LiquidFun的目的在于模拟流体。因此在流体的情况下,你是不需要去考虑粒子的旋转的,所以LiquidFun在这里选择了内存消耗更小的Points
通过GL_POINTS绘图
在OpenGL/OpenGLES中可以通过GL_POINTS来绘制Points,不过它有以下几个确定的限制:
它没有办法旋转(就像上面说的那样)
如果你通过gl_PointSize放大或者缩小粒子,你没有办法单独放大或缩小X轴和Y轴的大小,它们只能同时被放大或缩小。
Points也可以使用纹理,但是你没有办法改变他的U-V坐标,无论你用的是一整张纹理还是什么都不使用。
如果你以前从没使用过GL_POINTS,你可以通过下面的代码来看看它什么样的:
将Box2d坐标转换成Cocos2d-x坐标系Cocos2d-xv3.0需要将ModelView模型传递给draw()方法。我们所要做的便是将它转换成Box2D坐标系统中能用的坐标。下面的代码便是我们所需要做的:
通过gl_PointSize来转换大小
我们要做的另一件事便是上面所没有讲到的,如何根据“世界”大小来放大缩小Points。下面的代码将会展示:
通过gl_PointCoord来生成纹理坐标
最后要做的事情,就是给粒子附上纹理,否则我们将没法看到任何东西。上面提到过,你不能直接把UV坐标传递给Points。因此,这里我们将使用一个叫做gl_POINTS的预定义变量。如下:
以上!便是所有的过程!
在第二部分,我会介绍如何将LiquidFun整合到Cocos2d-x在Win32和VisualStudio的环境中。待会我会介绍如何使用更漂亮的"metaball/blob"来渲染模拟水的特效。
以上方法由办公区教程网编辑摘抄自百度经验可供大家参考!
标签: HTML
相关文章
- 详细阅读
- 详细阅读
-
HTML5创作工具,MAKA 2.0史上最全操作指南详细阅读
HTML5创作工具,MAKA 2.0史上最全操作指南,超过15000种模板组合。还怕你没有发挥的空间吗?MAKA(中文:码卡)作为中国最早推出移动端卡片式交互模式的创新者,随着HTML5技术的日渐成熟......
2023-03-16 433 HTML