惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Martin Fowler
Martin Fowler
WordPress大学
WordPress大学
月光博客
月光博客
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
大猫的无限游戏
大猫的无限游戏
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
博客园 - 聂微东
Apple Machine Learning Research
Apple Machine Learning Research
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
雷峰网
雷峰网
小众软件
小众软件
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园 - 叶小钗
美团技术团队
宝玉的分享
宝玉的分享
Hugging Face - Blog
Hugging Face - Blog
阮一峰的网络日志
阮一峰的网络日志
A
About on SuperTechFans
Jina AI
Jina AI
D
Docker
Last Week in AI
Last Week in AI
MongoDB | Blog
MongoDB | Blog
Stack Overflow Blog
Stack Overflow Blog
Microsoft Azure Blog
Microsoft Azure Blog

远飞闲记

用 OpenClaw 搭建全自动晨间简报系统 Open Claw(🦞龙虾): 新手最常踩的 8 个坑,我帮你踩过了 什么是AI Agent(智能体)? OpenClaw 在微信端使用指南 如何让OpenClaw🦞更好用-调教篇 OpenClaw(龙虾🦞)自主赚钱实验笔记 本地Qwen+云模型:OpenClaw真实体验 AI博客主题开发记 OpenClaw初试记 十年博客路:在AI水文泛滥的时代,为何还在坚守? AI Coding实战吐槽:别被"400刀大神"带偏,这些坑我帮你踩过了! 《相信》把不可能变为可能 我们写的程序被杀毒软件杀了,杀毒软件到底杀了什么? 👋2024 探索Unity单元测试:构建可靠游戏代码的基石 实用小黄鸭调试法 炸裂的Unity割韭菜这事 还是要有信念 您好2023 Docker启动提示虚拟化失败 Golang中配置文件热重载方案 重置博客主题 双链知识管理及logseq使用体验 魔幻的魔都疫情 漫谈国内NFT市场状况 如何在UE4中平衡蓝图与C++的使用 2021时光荏苒,2022可遇可期 UE4(Unreal Engine)本地化资源功能 摈弃:“拥有更多=做的更好的”的观念 鱿鱼游戏
cocos2d-x中lua层调用Object-C和Java中接口的方法
2015-08-30 · via 远飞闲记

在cocos2d-x lua框架生成项目目录src/cocos/cocos2d/luaj.lua和luaoc.lua两个文件,在项目中使用一个公共的lua文件通过device.platform进行对ios和android平台的管理进行相应的选择需要调用的接口. 在文件中分别提供了一个callStaticMethod的接口来对需要调用接口的调用.接口分为三个参数:类名,方法名,和参数.

在cocos2d-x lua项目中新建一个platformBridge.lua文件来对不同平台调用进行管理,lua文件代码如下:

 function platformBridge()
   local result = {}
     if device.platform == "ios" then
        result.ios = import("cocos.cocos2d.luaoc")
	end
	if device.platform == "android" then
	    result.android = import("cocos.cocos2d.luaj")
	end
	return result
end

在其他文件中使用,这样就可以同个一个变量来对不同平台调用进行管理

local bridgeLua = import("platformBridge")[device.platform]
bridgeLua.callStaticMethod("类名","接口名","调用的参数")

调用Object-C和Java接口cocos2d-x都是通过C++来做中转调用的.具体的实现细节参考cocos2d-x框架目录cocos/scripting/lua-bindings/manual/platform/中ios和anroid目录下的代码.