Cocos2d-x引擎有什么特性?

2021-05-19 17:54发布

4条回答

Cocos2d-x本身是Cocos2d的一个cpp扩展。基础架构是sprite为基础的2D游戏引擎。所以适合开发2D游戏。无论平台。cocos2d-x游戏引擎提供了全套的引擎和开发工具,涵盖从前期的游戏设计、资源制作、开发调试、打包上线全套的解决方案。Cocos2d重点优化了工作流,规范了整个游戏开发流程,降低沟通成本,提高开发效率。
Cocos2d-x不断的优化游戏性能,以保证高帧速率下可以获得更华丽的效果;即使是山寨千元机,运行华丽特效丝毫不卡顿,让您的游戏可以得到尽情的发挥。
cocos2d-x使用c++程序开发,跨平台运行于ios和android中,确保一次制作,全平台支持。无需为后期移植耗尽人力和时间,极大的降低了时间成本,确保游戏不会错过珍贵的黄金上线档期。
目前的动漫游戏行业的发展之迅速预示着有一个可以运行在多个平台的游戏引擎至关重要。Cocos2dx同时支持Windows和Mac操作系统,功能完全同步。提升团队协作便捷性,不再为了配合而频繁的切换系统或者使用双系统。
除此之外,Cocos2dx开放了强大的扩展功能并推出了Cocos Store,提供了插件、资源、工具、素材等丰富的资源,为用户的开发提供了更大的灵活性。

722
3楼 · 2021-05-20 14:02

 Love2D是一个开源的, 跨平台的2D游戏引擎。使用纯Lua脚本来进行游戏开发。目前支持的平台有Windows,Mac OS,Linux。另外在社区里,还有Love2D-android版本,而且也有进军IOS的计划。


  这个游戏引擎在国内听说或者是使用的人可能不是很多,但是在国外还是有很大一部分的使用人群的。


  官方网站为: http://www.love2d.org/


  目前的最新版本为 0.8.0。


  


  我们从官网下载Windows平台的,然后解压缩。


  




  我们可以看到如下几个文件。


  双击love.exe。


  




  额,这个。可以当成是默认画面吧。


  有的人看到这里,就会觉得摸不着头脑。不知道该如何进行开发或者运行。




  其实很简单,我们新建一个文件夹:FirstGame。然后在文件夹里新建一个lua脚本:main.lua。 注意:这里一定要是main.lua。因为Love2D引擎默认开始执行的脚本就是main.lua。


  我们来写一个Hello World。


  


function love.draw()

    love.graphics.print("Hello World", 300, 300)

end


  这就是一个简单的HelloWorld脚本。love.graphics.print是绘制文本的函数。我们在(300,300)坐标绘制了一个"Hello World"字符串。




  然后我们把FirstGame文件夹,拖到Love.exe上。就可以看到执行后的效果了。


  


  是不是很简单?


  当然,用脚本语言的优点就是不用重复编译,可以节省大量的时间。不过也有缺点,由于Love2D没有官方的IDE,所以我们不可能有代码提示的。(- - !)




  下面我们来看看Love2D的SDK的结构。


  


  我们可以看到这些都是Love2D里Lua的模块Module。模块的功能都可以从名字看到,有音频,事件,文件系统,字体,图形绘制,操纵杆,键盘鼠标事件,物理部分等。还有封装的线程等功能。


  大家可以看到,虽然是用的Lua语言,但是模块的功能还是很强大的。对于开发2D游戏来说,是绰绰有余了。




  Love2D里有一些默认的函数来执行。


  love.draw 每一帧绘制都会执行。


  love.focus 当窗口获取焦点或者失去焦点时执行。


  love.joystickpressed 当操作杆按下按键时执行。


  love.joystickreleased 当操作杆松开按键时执行。


  love.keypressed / love.keyreleased 当键盘按下按键和松开按键时执行。


  love.mousepressed / love.mousereleased 当鼠标按下按键和松开按键时执行。


  love.load  这个函数在每次开始游戏的时候执行一次。


  love.quit  在游戏关闭时执行。


  love.run 最主要的函数,包含了游戏的主循环。


  love.update 每一帧执行,用来更新游戏状态。




  下面我们来看看一个简单的例子,就是在屏幕绘制一个图片。


 


function love.load()

   person= love.graphics.newImage("preson.png")

   x = 50

   y = 50

end

function love.draw()

   love.graphics.draw(person, x, y)

end


  上面就是对Love2D里Lua模块的一个简单介绍。



  下面我们来看看,如何把Love2D的Lua脚本打包为可执行程序。


  首先下载下面的工具: https://code.google.com/p/love-dist/downloads/list 。


  这是一个资源打包工具,可以把你写的Lua脚本和资源打包为.love文件。




  下载下来并解压。


  




  然后把刚刚的FirstGame的文件夹放到这个的同级目录。并新建一个build.bat文件。


  写入内容 lovedist FirstGame FirstGame。


  




  可以看到如上的画面,然后再目录里,我们发现多了一个FirstGame.love文件。




  然后把FirstGame.love文件放到love.exe文件同目录。


  新建一个build.bat文件,并写入内容: copy /b love.exe+FirstGame.love FirstGame.exe。


  双击执行。




  




  我们可以看到,多了一个FirstGame.exe。


  双击执行,就是我们刚刚的Hello World程序了。




  最终我们的程序目录应该包含以下文件:


  SDL.dll ,OpenAL32.dll ,DevIL.dll ,FirstGame.exe ,license.txt。


  


  注意,发布的任何游戏要附带license.txt。因为Love2D是LGPL开源协议的,并且还用到了其他的LGPL开源协议的库。




  这样我们就可以用Love2D开发并发布自己的游戏了。


蜗牛
4楼 · 2021-05-21 10:29

cocos2d for iphone 是:

  • 易用的:他使用友好的API,并伴有大量例子

  • 快速的:他使用opengles实现并优化了数据结构

  • 灵活的:他容易扩展,容易整合第三方库

  • 免费的:开源,兼容闭源和开源游戏

  • 社区支持的:有一个大的活跃的友好的社区

  • AppStore认可的:超过2500款AppStore游戏使用它开发,包括许多热卖游戏。

cocos2d for iphone 的特性:

  • 场景管理(工作流)

  • 场景间过度

  • 精灵和精灵表

  • 特效:Lens, Ripple, Waves, Liquid, Twirl, 等

  • 动作(行为)

    • 变换动作:Move, Rotate, Scale, Jump, 等

    • 组合动作:Sequence, Spawn, Repeat, Reverse,等

    • 灵活动作:Exp, Sin, Cubic, 等

    • 混合动作:CallFunc, OrbitCamera

  • 基本的菜单和按钮

  • 集成物理引擎(box2d和chipmunk)

  • 粒子系统

  • 文本渲染支持(可变的和固定宽度字体)

  • 纹理集支持

  • 瓦片地图支持(TMX格式):

    • 正交地图

    • 等角地图(斜视角)

    • 六边形地图

  • 视差滚动支持

  • 声音支持

  • Streak Motion support

  • 渲染纹理支持

  • 高分榜(cocos live)

  • Point based API: Supports Retina Display

  • 触摸、重力加速器、键盘、鼠标支持

  • 横竖屏切换、自动全屏支持

  • 整合Pause/Resume

  • 快速纹理:支持PVRTC textures, 8位 textures, 16 textures and 32 textures

  • 基于opengl es


征戰撩四汸
5楼 · 2021-12-06 13:50

cocos2d-X发展的重点是围绕cocos2d跨平台。即其实现一次编码,再各平台分别编译后即可运行,不许为跨平台修改大量代码,不需要在一直方面花费很多时间和人力,目前cocos2d-x引擎已经可以跨以下平台:

 iOS

 Android

Windows XP / Windows 7

Meego

BlackBerry

Bada

Marmalade (原名airplay, 一个c++跨平台框架)

其除跨平台外,相对其它的移动游戏引擎还有以下特点

1、易用性:易于学习掌握的API,大量示例代码和文档,有c++语言功底的新手只需画一个月就能上手完成简单游戏;

2、高效性:使用OpenGL ES 1.1最佳方式进行渲染;

3、灵活性:易于扩展,易于与其他开源库集成使用;

4、活跃的社区:全球化的活跃论坛。

5、成功商用:根据开源社区的保守统计,基于Cocos2d-x开发的游戏全球范围内已经突破一亿安装量。

Cocos2d-x 提供主要功能:

非常容易低进行不同场景之间的流程控制管理

菜单维护简单

支持标签和html标签的文本渲染

快速而方便的精灵

按照你的想法指挥精灵变化,可组合的动作,包括移动、旋转和缩放

支持包括波浪、旋转和透镜等特效

支持矩形和六边形的瓦片地图(Tiled Maps

支持场景切换特效

支持粒子系统

支持硬件加速,即基于opengl es 1.1实现图形渲染系统

支持音效和背景音乐支持(CocosDenshion库)

基础物理引擎Box2dchipmunk

根据不同屏幕分辨率自动缩放适配

Lua脚本支持。


相关问题推荐

  • 回答 6

    第一步:对着Assets点击右键,选择ExportPackage第二步:选择场景文件以及和场景相关的资源或者素材,然后点击Export第三步:给导出的资源取名,并且选择要保存的位置即可

  • 回答 87
    已采纳

    玩游戏玩的很好,说明你对于游戏里面的规则、剧情设置还是比较了解的,对于从事游戏相关岗位来说也是优势之一。但是学习游戏开发还是要对游戏开发的工作内容做进一步的了解,游戏开发涉及代码较多,可以通过进一步的了解,判断自己是否适合学习这个方向,另外...

  • 回答 11

    游戏开发入门不难。后期发展需要你有丰富的奇思妙想。游戏开发肯定是培训好,自学学得不系统,并且不易发现自身薄弱之处。游戏开发的学习时长还是要看你自己对知识与技术的掌握能力,一般来说,游戏开发的学习时长大约在五个月左右。...

  • 回答 18

    个人觉得如果有一定的技术基础的话还是可以考虑自学,如果零基础的话可能会有些难度

  • 回答 10

    问题还是出在粒子的sorting fudge。在unity的2d模式下,游戏本身的背景相当于是sorting fudge的0,当你把粒子的sorting fudge设为0以上的时候,粒子就都会被背景盖住。所以在3d模式下给alpha正值来给add垫底的话,到了2d模式下就会通通不显示。所以遇上这样的...

  • 回答 17

    虚幻4引擎,你会看到和平精英加载页面左下角有这个图标。

  • 回答 8
    已采纳

    转载知乎上的两位答友的回答,各有道理。作者:风小锐链接:https://www.zhihu.com/question/322249959/answer/675883379来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。未来Unity有可能出现3A大作吗? 有可能。基于Unity已...

  • 回答 11

    在Assets文件夹里面.点击右键Create/Material即可以创建材质球

  • 回答 23

    可以让模型师直接作出这样的形状,如果用纯Unity制作,就要用基本游戏对象拼接了,包括楼梯,城堡,都可以拼接出来。正常情况不会这样做,因为不够精美,都是建模师来实现,毕竟Unity不属于专业的建模软件,侧重于实现功能。...

  • 回答 18

    粒子系统由粒子发射器、粒子动画器和粒子渲染器三部分组成,主要用于游戏场景中一些特殊效果,如水、烟火等等

  • 回答 18

    首先,Python开发游戏非常尴尬,原因是没有好用的游戏开发库。Python开发游戏仅推荐PyGame,PyGame是对多年以前很流行的游戏开发库——SDL的封装。但是说实话功能太简陋了,做个动画都得考虑刷新的问题。楼主要做简单小游戏,只需要画一两周熟悉Unity引擎,然...

  • 回答 9

    1.标记水体碰撞的位置2.计算水波的传递 通过波动公式,3D或者2D 波动公式都行3.水面顶点采样波动传递结果计算结果做顶点Y轴偏移

  • 回答 15

    Unity3D中两种阴影的实现传统的ShadowMapShadowMap说起来十分简单,把摄像机和光源的位置重叠,那么场景中该光源的阴影区域就是那些摄像机看不到的地方,主要应用在前向渲染路径中。具体实现分以下几个步骤:如果有平行光开启了阴影,Unity就会为该光源计算它...

  • 回答 18

    Doozy UI是Unity UI视图层的框架,本身使用的还是UGUI的组件,但提供了一套强大的UI管理功能,可以很方便的实现一些炫酷效果,方便的UI系统管理与事件传递机制。

  • 回答 12

    Unity3d更好,因为U3D占有的市场更大,目前cocos大都是用来开发棋牌游戏的,在这方面它有着巨大的优势。而Unity3d既可以用来开发大型3D游戏,也可以用来开发vr游戏、vr应用,这是比较不错的,未来有着巨大的前景。另外ue4也是个不错的选择,近年来用ue4开发的...

  • 回答 11

    当Unity 需要做热更新的时候(2013年开始),而普通的C#又做不到的时候,而对于游戏行业来说Lua脚本热更新已经是很成熟的方案,自然Lua 热更新就成为了Unity热更新的首选。

没有解决我的问题,去提问