`
lizaochengwen
  • 浏览: 659655 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

cocos2d-x与cocos2d-iphone+objc的区别

 
阅读更多
cocos2d-x是由国内一个团队,将objc语言的cocos2d引擎翻译到c++语言,以实现了跨平台功能。但是由于c++和objc在一些地方有细微的差别,因此导致了cocos2d-x与cocos2d相比也出现了一些使用上的不同。一下我将列出自己在开发过程中发现的一些不同点:

1. CCMutableDictionary<key, CCObject*>与NSMutableDictionary

  CCMutableDictionary是cocos2d-x自己写的一个类,它模仿了NSMutableDictionary。但是它有一点和NSMutableDictionary是不一样的。NSMutableDictionary的setObjectForKey方法,如果发现这个key已经存在于字典中的时候,它会自动用新的object覆盖掉原有的object。而CCMutableDictionary,由于它是使用map实现的字典功能。而在map里面,如果key已存在,是不会用新的object覆盖掉原有object的。由于这一区别不会导致程序编译出错,所以只有在程序运行以后才会发现问题,在使用CCMutableDictionary的时候需要特别注意这一点。

2. CCArray与NSMutableArray

  CCArray也是cocos2d-x自己写的类。它相当于是objc的NSArray。在cocos2d-x中是没有NSArray的概念的(NSArray和NSMutableArray的唯一区别就是一个不可以改变数组中含有的对象,另一个可以改变)。但是CCArray也有一个小问题。首先,CCArray是不能使用new的方式创建的。其次,使用CCArray::array()创建的数组,即使这个数组已经是当前类的成员变量,也必须要做一次retain,否则的话在创建数组的函数返回的时候,CCArray就会被直接释放掉了。由于这个问题也无法通过编译时候暴露出来,而且在objc中创建自动释放的NSArray类型的成员变量的时候是不需要retain的,所以当我从objc转为使用cocos2d-x的时候,经常会忘记做retain,多次导致了程序在其他函数中使用该成员变量的时候出现错误。

(待续)


原文:http://www.cnblogs.com/eagley/archive/2012/01/09/2317270.html
分享到:
评论

相关推荐

    Cocos2d-x实战++JS卷++Cocos2d-JS开发+PDF电子书下载+带书签目录+完整

    标题中提到了"Cocos2d-x实战++JS卷++Cocos2d-JS开发+PDF电子书下载+带书签目录+完整",这里面包含了几个关键知识点: 1. Cocos2d-x:是一个开源的游戏开发框架,它主要用于开发跨平台的游戏和应用程序,支持iOS、...

    cocos2d-x windows vs2010配置

    "cocos2d-x windows vs2010 配置详解" 本文将详细介绍如何在 Windows 环境下使用 Visual Studio 2010 配置 Cocos2d-x 游戏引擎。Cocos2d-x 是一个跨平台的游戏引擎,可以在多种平台上运行,包括 Windows、Mac OS X...

    Cocos2d-x实战:JS卷——Cocos2d-JS开发

    资源名称:Cocos2d-x实战:JS卷——Cocos2d-JS开发内容简介:本书是介绍Cocos2d-x游戏编程和开发技术书籍,介绍了使用Cocos2d-JS中核心类、瓦片地图、物理引擎、音乐音效、数据持久化、网络通信、性能优化、多平台...

    Cocos2d-x 3.x游戏开发实战pdf含目录

    《Cocos2d-x 3.x游戏开发实战》是一本深度探讨Cocos2d-x 3.x框架的游戏开发书籍,适合对游戏编程有兴趣的开发者学习。Cocos2d-x 是一个开源的、跨平台的2D游戏开发框架,广泛应用于iOS、Android、Windows等多平台的...

    Cocos2d-x实战:C++卷(2版)源代码

    《Cocos2d-x实战:C++卷(2版)源代码》这本书是关于使用Cocos2d-x游戏引擎进行游戏开发的专业指南。Cocos2d-x是一个开源的、跨平台的游戏开发框架,广泛应用于iOS、Android、Windows等多个操作系统。本书以C++语言...

    cocos2d-x-3.13.1 spine3.6.zip

    首先,我们需要了解Cocos2d-x与Spine的集成过程。在Cocos2d-x项目中,你需要将Spine的库文件导入,并按照官方文档的指引配置相应的环境。这个过程可能涉及到设置头文件路径、链接库和编译选项。对于Android平台,你...

    cocos2d-x_v3.16安装及环境变量配置文档

    安装 Visual Studio Community 2017 时,如果默认下载的组件与 Cocos2d-x-3.16.zip 发布包中项目的配置不同,可能会导致打开解决方案时缺少组件。此时需要根据提示安装缺少的组件,或者升级到当前版本的 Visual ...

    cocos2d-x-cocos2d-x-2.2.2.zip

    这个压缩包“cocos2d-x-cocos2d-x-2.2.2.zip”包含了cocos2d-x 的2.2.2版本,该版本是cocos2d-x发展中的一个重要里程碑,它提供了许多改进和优化,使得开发者能够更加高效地创建2D游戏和应用。 在cocos2d-x 2.2.2中...

    经典版本 方便下载 源码 旧版本 3.8 官网找不到了 cocos2d-x-3.8.zip

    在学习和使用cocos2d-x 3.8时,开发者需要注意与最新版本的差异,例如API的变化、新功能的缺失等。同时,由于3.8是旧版本,可能不再受到官方的维护和支持,所以在解决特定问题时可能需要查阅旧的文档或社区论坛。 ...

    Cocos2d-x实战C++卷关东升著完整版pdf

    读者需要理解C++的基本语法、类与对象、模板等核心概念,以便更好地运用到Cocos2d-x中。 在Cocos2d-x框架内,主要包括场景(Scene)、层(Layer)、节点(Node)等概念。场景是游戏的顶层容器,可以包含多个层,层...

    cocos2d-x-3.1.zip

    Cocos2d-x是一个开源的游戏开发框架,广泛用于2D游戏、实时渲染应用程序和其他互动内容的制作。这个压缩包“cocos2d-x-3.1.zip”包含了Cocos2d-x框架的3.1版本,这是一个经典且相对旧的版本,可能对于那些寻找历史...

    cocos2d-x 动画工具 Flash2Cocos2d-x 1.3

    《cocos2d-x 动画工具 Flash2Cocos2d-x 1.3:将Flash创意带入移动游戏开发》 在移动游戏开发领域,cocos2d-x是一款广泛使用的开源游戏引擎,以其高效、跨平台的特性深受开发者喜爱。而Flash2Cocos2d-x则是一个专为...

    Cocos2d-x实战 JS卷 Cocos2d-JS开发

    《Cocos2d-x实战 JS卷 Cocos2d-JS开发》是一本深入探讨Cocos2d-x游戏引擎JavaScript版本使用的专业书籍。Cocos2d-x是全球范围内广泛采用的游戏开发框架,尤其适用于2D游戏的制作,而Cocos2d-JS则是其JavaScript接口...

    cocos2d-x 3.0

    《cocos2d-x 3.0:游戏开发中的角色移动技术详解》 在游戏开发领域,cocos2d-x是一款广泛使用的开源2D游戏引擎,尤其在移动平台上的应用非常广泛。cocos2d-x 3.0版本带来了许多性能优化和新特性,使得开发者能够更...

    cocos2d-x+socket

    《cocos2d-x与Socket网络通信的深度解析》 在游戏开发领域,cocos2d-x是一款广泛应用的2D游戏引擎,它以其强大的性能、跨平台支持和丰富的API受到开发者们的青睐。其中,网络通信是游戏开发中的关键部分,特别是在...

    cocos2d-x-2.1.4.rar

    《cocos2d-x 2.1.4:探索移动游戏开发的新篇章》 cocos2d-x 是一个跨平台的2D游戏开发框架,它为开发者提供了强大的工具和技术支持,使得游戏开发变得更为便捷。2.1.4 版本是这个框架的一个重要里程碑,它在前一...

    cocos2d-x API中文文档

    在Cocos2d-x的家族中,还有其他分支引擎,如Cocos2d-iPhone、Cocos2d-python、Cocos2d-xna等,它们各自支持不同的平台和编程语言,满足不同开发者的需求。例如,Cocos2d-iPhone专注于iOS平台,使用Objective-C或...

    cocos2d-x实战 c++卷教程及完整源码

    cocos2d-x实战 c++卷教程及完整源码下载,使用最新cocos2d-x-3.14版本,在xcode7.3上已编译通过。 解决相关问题 1、解决源程序在高版本上无法编译问题 2、解决源程序中文注释部分,xcode上显示乱码问题 3、根据书籍...

    cocos2d-x-2.1.5

    cocos2d-x-2.1.5

    cocos2d-x-3.13.1.zip

    《cocos2d-x 3.13.1:深入解析与应用》 cocos2d-x 是一个开源的游戏开发框架,广泛应用于跨平台2D游戏的开发,支持iOS、Android、Windows等操作系统。它的3.13.1版本是一个重要的里程碑,提供了诸多改进和优化,...

Global site tag (gtag.js) - Google Analytics