工作中,需要把cocos creator创建的多个游戏适配到Android和ios应用中,经过调研,可以利用大厅子游戏模式实现。大厅本身作为一个游戏工程,可以有加载页面,和热加载子游戏。

如何动态加载和更新子游戏:

自从jsb 3.0以来,可以用反射调用Android或者ios的代码:

const SubgameManager = require('SubgameManager');

cc.Class({

extends: cc.Component,

properties: {

downloadBtn: {

default: null,

type: cc.Node

},

label: {

default: null,

type: cc.Label

},

// defaults, set visually when attaching this script to the Canvas

text: 'Hello, World!'

},

// use this for initialization

onLoad: function () {

var name = 'subgame';

if (cc.sys.OS_ANDROID == cc.sys.os) {

name = jsb.reflection.callStaticMethod("org/cocos2dx/javascript/GameNameProvider", "getName", "()Ljava/lang/String;");

console.log("OS_ANDROID platform provides: " + name);

}

if (cc.sys.OS_IOS == cc.sys.os) {

name = jsb.reflection.callStaticMethod("GameNameProvider", "getName");

console.log("OS_IOS platform provides: " + name);

}

//判断子游戏有没有下载

if (SubgameManager.isSubgameDownLoad(name)) {

//已下载,判断是否需要更新

SubgameManager.needUpdateSubgame(name, (success) => {

if (success) {

this.label.string = "子游戏需要更新";

console.log("子游戏需要更新");

} else {

this.label.string = "子游戏不需要更新";

console.log("子游戏不需要更新");

}

}, () => {

console.log('出错了');

});

} else {

console.log("子游戏未下载");

this.label.string = "子游戏未下载";

}

this.downloadBtn.on('click', () => {

//下载子游戏/更新子游戏

console.log("downloadBtn clicked");

SubgameManager.downloadSubgame(name, (progress) => {

if (isNaN(progress)) {

progress = 0;

}

this.label.string = "资源下载中 " + parseInt(progress * 100) + "%";

console.log(this.label.string);

}, function(success) {

if (success) {

SubgameManager.enterSubgame(name);

console.log("进入子游戏");

} else {

console.log('下载失败');

}

});

}, this);

},

// called every frame

update: function (dt) {

},

});

Android代码:

package org.cocos2dx.javascript;

public class GameNameProvider {

public static String getName() {

return "subgame";

}

}

iOS代码:

#import

@interface GameNameProvider:NSObject {

}

+ (NSString *)getName;

@end

#import "GameNameProvider.h"

#import

@implementation GameNameProvider

// request login

+ (NSString *) getName {

return @"subgame";

}

@end

cocos android 热更新,Cocos creator 大厅子游戏和热更新相关推荐

  1. cocoscreator2.0.10 热更新大厅子游戏模式 学习使用记录

    热更新主要用到cocos2d的热更新模块RawAsset    AssetsManager 先按教程写个demo 创建大厅空项目 ,添加场景helloworld ,如下图在场景中加热更需要的控件 ch ...

  2. cocos android 剪切板,Cocos Creator 点击按钮复制到剪切版

    建一个ts文件,js文件不行,复制下面的代码,在场景中给button绑定事件 // Learn TypeScript: // - https://docs.cocos.com/creator/manu ...

  3. 王者荣耀服务器维护9月27,《王者荣耀》ios更新不了怎么办 9月27日更新失败解决方法...

    导 读 王者荣耀9月27日更新结束后正式服就会开始s13赛季了,这种大版本更新一般都会有各种更新状况出现,尤其是ios玩家,那么ios更新不了怎么办?小编抢先为大家分享一下更新失败的原因和解决方法,大 ...

  4. 【10086个赞】Cocos Creator助力H5游戏大爆发

    梦想起航,共筑辉煌.4月21日,"资本助推H5行业发展--2017·H5-GAME资深大咖荟"在厦门创+会议中心正式拉开帷幕. 作为一个新兴行业,H5游戏至去年年末便被众多从业者炒 ...

  5. Cocos 篇:基于 Cocos Creator v1.9,开始 Hello World 。。。

    前言 身体好,才是真的好~ 从此之后,要会生活,努力活出自己想要的样子~!!! Enmmm,LZ 也是小白一枚,初入贵行,还望手下留情~ 本篇主要作用,或者说定位在于和 LZ 一样得小白,希望多多交流 ...

  6. cocos 发布android 返回值2,cocos android编译出错

    初次涉猎cocos,直接用cocos studio编译新生成的工程,提示错误如下: 正在执行 ndk-build... NDK 编译模式:release NDK_TOOLCHAIN_VERSION: ...

  7. Cocos Creator 重力球游戏制作教程

    本文首发于:一枚小工(caizj_cn) Cocos 经授权转载,感谢作者创作 游戏玩法 通过手机陀螺仪,调整手机,让球从上一层的间隔中落到下一层,楼层会不断上涨,如果球碰到上方或者下方的火焰,游戏结 ...

  8. 穿山甲android对接错误码40029,空Android项目集成Cocos、穿山甲。Lua调用网络接口。...

    1. 搭建安卓空项目.集成cocos.穿山甲广告新建安卓项目start new android projectEmpty Activity包名这里要和穿山甲上面已创建的应用的包... 1. 搭建安卓空 ...

  9. android app 自动更新,app升级项目,新增强制更新(可静默),支持热更新(wgt),可支持高版本安卓系统...

    pure-updater 一个可以用的自动更新方案 经测试可支持 Android 9.0 已支持热更新 已支持静默的强制更新 如果您觉得还可以的话那就点个五星吧!谢谢! 已测试 android 8.0 ...

  10. cocos creator 浅塘游戏开发(2) 搭建初始界面

    cocos creator 浅塘游戏开发(2) 文章目录 cocos creator 浅塘游戏开发(2) 前言 一.创建一个新的工程 二. 1.初始配置 2.初始界面 总结 前言 此次文章将会搭建浅塘 ...

最新文章

  1. 目标检测比赛中的trick
  2. 用有效的测试培养工程——《Growing Object-Oriented Software, Guided by Tests》读后感
  3. linux c 关键字 _Noreturn 简介
  4. ionic ajax 跨域,解决 ionic 中的 CORS(跨域) 问题
  5. 【案例分享】crontab执行脚本异常问题
  6. ionic3 隐藏子页面tabs
  7. Hadoop框架:HDFS读写机制与API详解
  8. no判断 python yes_Python 内置类型全解析(1)
  9. python编程(指针)
  10. 动态规划经典例题:钢条切割
  11. 第二节20181110
  12. 微信公众号应用开发(一)
  13. Java多线程系列--【JUC集合10】- ConcurrentLinkedQueue
  14. Android开发之so文件使用方法详解
  15. 口碑营销:如何让传统行业的电商引发口碑效应并营销
  16. rabbitMQ无法访问web管理页面
  17. SpringGateway 网关
  18. 如何设计接口测试用例
  19. Ubuntu10.04用Wine完美运行QQ2009
  20. 用turtle绘制中国象棋

热门文章

  1. 博客园8月份第3周51Aspx源码发布详情
  2. 网络工程师考试-计算机网络笔记
  3. 大学计算机word操作教程,word技巧大全:73个word实用技巧分享-电脑教程
  4. 主成分分析与因子分析及SPSS实现
  5. php bi系统,bi系统是什么系统
  6. Linux系列教程——Linux文件编辑、Linux用户管理
  7. 【杨中科解惑】我该怎么选择?选择就是放弃
  8. C语言学习书籍推荐!(附自学课程)
  9. 推荐一个小工具 -- 微信QQ防撤回
  10. 炸裂!跑P站上教微积分,年入170w...