• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >游戏开发 > 我想问,Cocos2d-x3x究竟是怎样跨平台开发和编译执行的

我想问,Cocos2d-x3x究竟是怎样跨平台开发和编译执行的

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-05

佚名通过本文主要向大家介绍了我想问一下,洗澡时妈妈问我想不想,我想问一个问题,我想问老先生,想问你双手是否温热等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 我想问,Cocos2d-x 3x究竟是怎样跨平台开发和编译执行的
描述:

cocos2d-x跨平台

这一段,我一直在寻找合适的Cocos2d-x是怎样跨平台的原因。网上有很多的话题,我觉得很难找到一篇彻底解释这个的。我们的Cocos2d-x开发出来的程序,入口是main函数(win32下),里面有AppDelegate app;  return Application::getInstance()->run();这两句。为什么会创建一个app对象,因为AppDelegate类继承自Application类,而Application继承自ApplicationProtocal类,而没有完全实现该协议的抽象方法,所以Application是一个抽象类,不能够在类外进行实例化。Application要想实例化,需要借助于自身的getInstance(),而这个getInstance返回的是sm_pSharedApplication是一个单例【static Application * sm_pSharedApplication;】,初始值是0,如果想使用这个单例,就必须调用Application的构造函数,才能执行 sm_pSharedApplication = this;的操作。但是它本身是不会调用自身的构造函数的,所以必须借助于构造子类实例来调用父类的构造函数,达到 sm_pSharedApplication = this;的目的。这样的话, Application::getInstance()->run();才可以run的起来。   
我们说AppDelegate里面的bool AppDelegate::applicationDidFinishLaunching() {};这个方法里面实现的是与平台无关性的代码;而Application类则封装了不同平台的实现。
我在Application中发现,根据所谓的不同的平台加载不同的头文件,我打开这些所谓的通过条件编译加载的文件,它们中的代码机几乎是一样的嘛,而且在win32下开发的游戏,可以通过配置android环境,打包成apk,但是为什么不能打包成iphone可以执行的程序呢?为什么一定要在Mac os上打包成iphone可以执行的程序ipa包呢?为什么会有2套Cocos2d-x for-windows   Cocos2d-x for-mac 这两种版本呢?非常的不理解,请大家指点迷津????????


解决方案1:

跨平台无非就是统一了接口,让上层可以不用关心平台来实现功能。
举个例子,每个平台的音频sdk都不一样,通过cocos播放音效过程:
安卓sdk->安卓音频sdk->cocos for 安卓 -> SimpleAudioEngine
它是基于安卓sdk,打包也需要安卓的环境。
同样的ios也是如此
ios sdk->ios音频sdk->cocos for ios -> SimpleAudioEngine
你打包也要ios环境, ios的打包环境只能在mac上面用xcode才行哦。


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 我想问,Cocos2d-x3x究竟是怎样跨平台开发和编译执行的

相关文章

  • 2017-06-05 cocos2dx精灵问题
  • 2017-06-05 cocos2dx38模拟器分辨率选择菜单不见了
  • 2022-04-30Unity 3D Drag Window控件
  • 2017-06-05 cocos310每次启动都会自动断在DeprecatedEnumlua文件里
  • 2022-04-30Unity 3D ToolBar控件
  • 2022-04-30Unity 3D Box控件
  • 2022-04-30Unity 3D碰撞体(Collider)
  • 2017-06-05 unity访问安卓手机本地资源(如图片、视频)
  • 2017-06-05 Unity3D在特定物体表面绘制椭圆
  • 2017-06-05 DX9用渲染管线如何实现法线贴图效果?

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • Unity 3D Drag Window控件
    • Unity 3D工具栏和常用工具简介
    • autoaction3=TargetedAction::createthis,CallFunc::createCC_CALLBACK_0Node:
    • 键盘左右控制刚体旋转,方向相反,而且速度慢,为什么?
    • Unity 3D是什么?Unity 3D简介
    • u3d如何做图片拖动
    • 独自一人的手游开发之路持续更新cocos2dx-开发IOS
    • Unity 3D导出资源包
    • CCTableView类中显示没有成员CCPoint
    • 游戏编程中数据相关类如何设计?

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有