【IOS-COCOS2D-X 游戏开发之十四】XCODE中C++&OBJECT-C混编,详细介绍如何在COCOS2DX中访问OBJECT函数以及APPLE API

简介:
本站文章均为  李华明Himi  原创,转载务必在明显处注明: 
转载自【黑米GameDev街区】 原文链接:  http://www.himigame.com/iphone-cocos2dx/743.html

Cocos2dx系列博文的上一篇详细介绍了如何在Xcode中利用jni调用Android的Java层代码,还没有看过的童鞋,请移步到如下博文:

【iOS-cocos2d-X 游戏开发之十三】详细讲解在Xcode中利用预编译并通过Jni调用Android的Java层代码(cocos2dx里访问调用Android函数)! 

本篇继续介绍另外一个在Cocos2dx中必经之路:在Cocos2dx中调用苹果Api以实现后期iOS的GameCenter和iap的相关操作, 那么Himi这里就跟大家简单分享探讨下;如何在Xcode中进行c++与oc混编吧~

参考王哥说的 SimpleAudioEngine 类;

首先Himi建立了两个类,一个object-c ,一个c++,详细如下:

HSpriteOC.h

HSpriteOC.m

这个类比较简单,简单定义了几个静态函数,打印和显示一个提示框,不赘述,大家大概看下就可以了;

下面来看c++的类:

HSpriteCPP.h

HSpriteCPP.cpp

此类是个自定义精灵类,都是简单的创建等函数,其HSprite.cpp类的导入和在 myInit() 自定义初始化函数中都加入了预编译(#if #else #endif 对预编译不太了解的自定百度下吧),主要为了区别当前手机设备的平台区分做处理;而且在myInit()中我使用了object-c语法进行调用之前OC写的HSprite类函数;

其实通过观察以上两个类童鞋们估计很容易看出在xcode中cpp和oc如何混编;其实就是两点:

1. 混编的类需要将其实现类(.cpp)改成(.mm)类,那么Xcode就会智能知道这个类混编类了,不用复杂的操作;

2. 混编中cpp调用oc,其实就是各自使用各自语法即可,没差异!(最好对OC和c++都比较熟悉更效率)

然后Himi在HelloWorldScene.cpp中加入以下测试代码:

别忘记导入对应使用的类哦~OK,看运行效果:2.png

相关文章
|
文字识别 API iOS开发
iOS小技能:iOS13 证件扫描 & 文字识别API
1. 应用场景:证件扫描、文字识别 2. 原理:利用iOS13 VNDocumentCameraViewController的证件扫描和VNRecognizeTextRequest文字识别功能进行实现
229 0
iOS小技能:iOS13 证件扫描 & 文字识别API
|
3月前
|
缓存 JSON API
IOS网络编程:什么是 RESTful API?如何使用 RESTful 风格设计 API?
IOS网络编程:什么是 RESTful API?如何使用 RESTful 风格设计 API?
40 3
|
6月前
|
iOS开发 芯片 MacOS
[Xcode 12, building for iOS Simulator, but linking in object file built for iOS, for architecture...
[Xcode 12, building for iOS Simulator, but linking in object file built for iOS, for architecture...
126 0
|
7月前
|
API
15-iOS之Runtime常用API以及使用
15-iOS之Runtime常用API以及使用
53 0
|
10月前
|
小程序 API Android开发
小程序获取WIFI的API(IOS conncetWifi()自动跳转设置页)
小程序获取WIFI的API(IOS conncetWifi()自动跳转设置页)
258 0
|
C语言 iOS开发
iOS开发 - Object-C中如何使用多维数组
iOS开发 - Object-C中如何使用多维数组
68 0
iOS开发 - Object-C中如何使用多维数组
|
移动开发 iOS开发
ios 使用钉钉嵌入的h5 formData无法正常使用 得到的对象结构是 Object{appendData : ..., realFormData : ...}
<script src="XXXXXX/formdata.min.js"></script> 通过引入外部formData也没办法解决 "formdata-polyfill": "^4.0.10", 安装了以上依赖包也没有办法解决 在提交前可以通过FormData。get拿到数据,但是发送请求的时候,后端没办法解决 希望哪位大佬可以提供一下帮助
|
iOS开发
Xcode 10升级报错:libstdc++.6.0.9.tbd
Xcode 10升级报错:libstdc++.6.0.9.tbd
487 0
Xcode 10升级报错:libstdc++.6.0.9.tbd
|
编译器 API iOS开发
iOS/OC Rumtime 相关API
iOS/OC Rumtime 相关API
86 0
iOS/OC Rumtime 相关API
|
Java 程序员 C语言
【IOS 开发】Object - C 面向对象 - 类 , 对象 , 成员变量 , 成员方法(一)
【IOS 开发】Object - C 面向对象 - 类 , 对象 , 成员变量 , 成员方法(一)
109 0