cocos2d-js-v3.0-rc0 下 pomelo-cocos2d-jsb native web 配置

Pomelo​的Cocos2d-js客户端pomelo-cocos2d-js.zip pomelo-cocos2d-js 是 Pomelo 的 Cocos2d-js 客户端。var pomelo = window.pomelo; var route = 'gate.gateHandler.queryEntry'; var uid = "uid"; var rid = "rid"; var username = "username"; pomelo.init({     host: "127.0.0.1",     port: 3014,     log: true }, function() {     pomelo.request(route, {         uid: uid     }, function(data) {         pomelo.disconnect();         pomelo.init({             host: data.host,             port: data.port,             log: true         }, function() {             var route = "connector.entryHandler.enter";             pomelo.request(route, {                 username: username,                 rid: rid             }, function(data) {                 cc.log(JSON.stringify(data));                 chatSend();             });         });     }); }); function chatSend() {     var route = "chat.chatHandler.send";     var target = "*";     var msg = "msg"     pomelo.request(route, {         rid: rid,         content: msg,         from: username,         target: target     }, function(data) {         cc.log(JSON.stringify(data));     }); } 标签:pomelo 立即下载

一。基本步骤 

注意:pomelo-cocos2d-jsb 没有用 https://github.com/NetEase/pomelo-cocos2d-jsb,原因这个不是最新版,另外,component根文件没有

pomelo-cocos2d-jsb 用的是 https://github.com/NetEase/chatofpomelo-websocket/tree/master/web-server/public/js/lib

这个是最新版,另外可以更新

具体步骤:

1.1下载zip文件

   wget https://github.com/NetEase/chatofpomelo-websocket/archive/master.zip

1.2 拷贝lib目录下所有文件及目录到src/pomelo-cocos2d-jsb目录下

1.3 更新文件 

component install -f && component build -v

1.4 建立index.js文件

文件内容为:

var window = window || {};
var module = module || {};
module.exports = {};

var console = cc;
console.error = cc.log;


var setTimeout = function(fn, interval) {
var instance = cc.Director.getInstance();
var scene = instance.getRunningScene();


instance.getScheduler().
scheduleCallbackForTarget(scene, fn, interval, 1, 0, false);
return scene;
}


var clearTimeout = function(target) {
var instance = cc.Director.getInstance();
instance.getScheduler().unscheduleAllCallbacksForTarget(target);
}


window.setTimeout = setTimeout;
window.clearTimeout = clearTimeout;


require('src/pomelo-cocos2d-jsb/components/component-emitter/index.js');


window.EventEmitter = Emitter;


require('src/pomelo-cocos2d-jsb/components/netease-pomelo-protocol/lib/protocol.js');


require('src/pomelo-cocos2d-jsb/components/pomelonode-pomelo-protobuf/lib/client/protobuf.js');


require('src/pomelo-cocos2d-jsb/components/pomelonode-pomelo-jsclient-websocket/lib/pomelo-client.js');


看一下具体的目录结构



二。native 平台 相关配置:

2.1  修改project.json文件,增加"src/pomelo-cocos2d-jsb/index.js"

注意,这个文件的调用顺序也很重要,app.js是要用到“src/pomelo-cocos2d-jsb/index.js”的



2.2 看看app.js里面怎么调用的

var pomelo = window.pomelo;


var HelloWorldLayer = cc.Layer.extend({

    sprite:null,

    ctor:function () {

        //////////////////////////////

        // 1. super init first

        this._super();

        

        this.connect2svr();

        /////////////////////////////

        // 2. add a menu item with "X" image, which is clicked to quit the program

        //    you may modify it.

        // ask director the window size

        var size = cc.director.getWinSize();


        // add a "close" icon to exit the progress. it's an autorelease object

        var closeItem = cc.MenuItemImage.create(

            res.CloseNormal_png,

            res.CloseSelected_png,

            function () {

                cc.log("Menu is clicked!");

            }, this);

        closeItem.attr({

            x: size.width - 20,

            y: 20,

            anchorX: 0.5,

            anchorY: 0.5

        });


        var menu = cc.Menu.create(closeItem);

        menu.x = 0;

        menu.y = 0;

        this.addChild(menu, 1);


        /////////////////////////////

        // 3. add your codes below...

        // add a label shows "Hello World"

        // create and initialize a label

        var helloLabel = cc.LabelTTF.create("Hello World","Arial",38);

        // position the label on the center of the screen

        helloLabel.x = size.width / 2;

        helloLabel.y = 0;

        // add the label as a child to this layer

        this.addChild(helloLabel, 5);


        // add "HelloWorld" splash screen"

        this.sprite = cc.Sprite.create(res.HelloWorld_png);

        //this.sprite = cc.Sprite.create(grassPNG);

                                      

        this.sprite.attr({

            x: size.width / 2,

            y: size.height / 2,

            scale: 0.5,

            rotation: 180

        });

        this.addChild(this.sprite,0);


        var rotateToA = cc.RotateTo.create(2,0);

        var scaleToA = cc.ScaleTo.create(2,1,1);


        this.sprite.runAction(cc.Sequence.create(rotateToA, scaleToA));

        helloLabel.runAction(cc.Spawn.create(cc.MoveBy.create(2.5, cc.p(0, size.height -40)),cc.TintTo.create(2.5,255,125,0)));

        return true;

    },

    connect2svr: function() {

        pomelo.init({

        host: '127.0.0.1',

        port: 3014,

        log: true

        }, function() {

           var route ='gate.gateHandler.queryEntry';

           pomelo.request(route, {}, function(data) {

             pomelo.disconnect();

             pomelo.init({

                host: data.host,

                port: data.port,

                log: true

                }, function() {});

             });

           });

    },

     

     loginSvr: function() {

     var self = this;

     var gPlayerName = 'name';

     var password = 'pass';

     password = md5(password);

     

     //self.mTips.setString('');

     

     route = "connector.entryHandler.loginSvr";

     pomelo.request(route, {

                    playerName: gPlayerName,

                    password: password

                    }, function(data) {

                    if(data.ret) {

                    //gPlayerId = data.playerId;

                    //var nextScene = cc.Scene.create();

                    //gGameLobbyLayer = new GameLobbyLayer();

                    //nextScene.addChild(gGameLobbyLayer);

                    //cc.Director.getInstance().replaceScene(cc.TransitionSlideInR.create(1, nextScene));

                    } else {

                        //self.mTips.setString('密码错误');

                    }

                    });

     }

});


var HelloWorldScene = cc.Scene.extend({

    onEnter:function () {

        this._super();

        var layer = new HelloWorldLayer();

        this.addChild(layer);

    }

});

2.3 看看运行的日志





三。web的配置

3.1  修改project.json文件,去掉 "src/pomelo-cocos2d-jsb/index.js" 这行 



3.2  修改根目录下的index.html 文件

改为

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>Cocos2d-html5 Hello World test</title>
    <link rel="icon" type="image/GIF" href="res/favicon.ico"/>
    <meta name="apple-mobile-web-app-capable" content="yes"/>
    <meta name="full-screen" content="yes"/>
    <meta name="screen-orientation" content="portrait"/>
    <meta name="x5-fullscreen" content="true"/>
    <meta name="360-fullscreen" content="true"/>
    <style>
        body, canvas, div {
            -moz-user-select: none;
            -webkit-user-select: none;
            -ms-user-select: none;
            -khtml-user-select: none;
            -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
        }
    </style>
</head>
<body style="padding:0; margin: 0; background: #000;">
<canvas id="gameCanvas" width="800" height="450"></canvas>
<script src="frameworks/cocos2d-html5/CCBoot.js"></script>
<script src="src/pomelo-cocos2d-jsb/build/build.js"></script>
<script type="text/javascript">
    require('boot');
</script>
<script src="main.js"></script>

</body>

注意: script的调用顺序非常重要,不能变动,因为有之间的调用顺序关系

3.3 运行的效果





AG16K MCU ARM Cortex M3 其中,Input文件为Keil生成的mcu程序文件,输出为合成后的存储格式Bin文件,Program address 为上方表格中“程序运行 RAM 地址(4bytes)”,即 Keil 中设置的程序运行地址。其中 MCU 程序的地址,根据 mcu.ip 中设置的 FLASH_BIAS 进行设置。AG16K MCU 的 FPGA 工程中,需调用 alta_mcu_m3 的硬核 IP,包含在 alta_sim.v 的库文。Quartus II。//MCU 程序在 FLASH 中存放的首地址。 阅读详情

相关推荐

ASPICE1-配置管理

SUP.8配置管理 BP1:开发配置管理策略 BP2:识别配置项 BP3:建立配置项管理系统 BP4:建立分支管理 BP5:控制变更和发布 BP6: 建立基线 BP7:报告配置项状态 BP8:验证配置项信息 BP9:管理配置项和基线的存储 1.配置管理概念 配置管理(Configuration Management,CM)是通过使用技术或行政手段对软件产品进行控制,以实现对软件开发过程和生命周期进行控制、规范的一系列措施。 完整性、一致性、可控性。 2.配置管理的主要活动: 1.

HDZQ2005的专栏 3686

pomelo+cocos2d-js之初学笔记一

1. 客户端配置 1.1 WEB端 使用的是pomelo 0.9.10,但是pomelo生成项目里的build.js还是老版本,不支持reconnect,用下面连接的版本就可以: https://github.com/NetEase/chatofpomelo-websocket/blob/master/web-server/public/js/lib/build/build.js

zhangjinzhong199093的专栏 1234

ESP-IDF下载配合MQTT协议接入云平台实例

通过ESP-IDF下载环境搭建,结合MQTT协议实现设备与云平台通信,详解从配置到连接的完整流程,助力物联网应用开发。重点涵盖espidf下载和MQTT集成关键步骤。

weixin_28913879的博客 454

cocos2d-js 3.0 beta + cocos code ide + pomelo手游框架搭建

在文章的开始,需要说明一下,有些东西写得不会很细,需要你摸索一下 1.准备工作 cocos2d-js 3.0 beta    下载地址 http://www.cocos2d-x.org/filedown/cocos2d-js-v3.0-beta.zip cocos code ide        下载地址 https://github.com/chukong/cocos-docs/b

mozart.ye的专栏 723

AST实战:解密Akamai混淆JS代码的完整流程

本文详细解析了如何使用AST技术解密Akamai混淆的JS代码,包括定位关键代码、AST解混淆实战步骤及常见问题解决方案。通过实际案例演示了从混淆代码到清晰逻辑的完整处理流程,并提供了工具推荐和法律合规建议,帮助开发者有效应对反爬虫技术。

weixin_33725722的博客 313

腾讯会议+OBS虚拟摄像头:解决多人屏幕共享的终极指南(附常见问题排查)

本文详细介绍了如何利用OBS虚拟摄像头技术,解决腾讯会议中多人屏幕共享的痛点。通过将OBS作为视频混流中心,可以突破腾讯会议单屏共享的限制,实现多屏幕、多窗口内容的同步展示,并提升演示的专业度。文章涵盖了Windows与Linux双平台的配置步骤、高阶场景搭建以及常见问题(如黑屏、画中画)的排查方法,是团队协作与专业演示的实用指南。

i8j9k0l1的博客 930

Cocos2d-JS自动JSB绑定规则修改

Cocos2d-JS自动JSB绑定规则修改什么是JSBJSB是javascript binding的简称。Cocos2d-JS中使用的javascript引擎是Mozilla 的spidermonkey,而JSB绑定的目的就是让javascript脚本能够调用到c++代码,c++代码能够调用到javascript脚本。怎么生成JSB绑定1、自动生成脚本在Cocosd-JS引擎目录下的tools/to

jianglong0156的专栏 2276

【学习笔记】一文搞懂IEPE传感器

本文介绍了IEPE(集成电路压电式)传感器的工作原理及其在振动监测中的应用。通过压电效应原理,IEPE传感器将机械振动转换为电信号,内置电荷放大器将高阻抗电荷信号转换为低阻抗电压信号输出。还介绍了传感器的三轴测量结构、4mA恒流源供电机制以及灵敏度与量程的关系,并通过风扇实验演示了故障诊断过程。实验使用USB-3123采集卡和SRD-1104信号调理器,展示了正常与异常状态下的振动数据差异,验证了IEPE传感器在设备状态监测中的有效性。

m0_62969865的博客 2813

cocos2d-js + pomelo 的开发环境搭建

cocos2d-js 是整合了 cocos2d-html5 和 cocos2d-jsb,可以方便的开发部署到各种设备环境中  pomelo-cocos2d-js 则是对 pomelo-client-websocket 和 pomelo-cocos2d-jsb 的整合 本文以cocos code ide为开发环境说明如何搭建 pomelo 与 cocos2d-js 的开发环境 1:

青峰专栏 4440

MAS1102量产工具实战指南:从下载到开卡,附固件选择与RDT优化技巧

本文提供MAS1102量产工具的实战指南,涵盖从工具下载、短接识别到开卡操作的全过程。重点解析了固件选择策略与RDT优化技巧,帮助用户成功修复基于联芸MAS1102主控的固态硬盘,解决常见开卡错误并提升SSD性能与稳定性。

c2d3e4f的博客 2190

智能座舱SoC平台横评:SA8155P、SA8255P、SA8295P、MT8678、MT8628 谁是下代车机首选?

高通SA8295P以PC级架构、强悍AI算力,代表安卓阵营迈向“本地大模型+空间计算”阶段;联发科MT8678则凭借低功耗 + 高带宽,成为副驾多媒体/副屏智能化的性价比之王。在座舱设计中,SoC平台决定了你能给用户什么样的交互方式,选型时切忌只看跑分,而要回归“体验-热设计-平台生态”的三角平衡。

weixin_43199439的博客 3353

在cocos2d-js中使用pomelo

一 下载安装nodejs 下载地址:https://nodejs.org/ #nodejs默认安装了npm工具 pomelo是基于nodejs,会用到很多nodejs中的代码。 另外还需要用到npm工具。 二 安装git 参考github官网:https://help.github.com/articles/set-up-git/ npm工具会用到git 三

寒风的技术博客 3695

注册GitHub时出现Unable to verify your captcha response.Please visit https://docs.github.com/解决方案(持续更新)

本文主要介绍了注册GitHub时出现Unable to verify your captcha response. Please visit https://docs.github.com/articles/troubleshooting-connectivity-problems/#troubleshooting-the-captcha for troubleshooting information.解决方案,希望能对学习使用GitHub的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案

weixin_43178406的博客 8万+

Cocos2d-JS在真机调试时出现的Invalid Native Object错误

这个错误是由于JS跟C++不同的内存处理方式产生的,一般表现为,在JSzho

1646

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

jsb调用java_cocos2d-js 3.0 jsb环境调用底层java代码

C++端工作环境还是cocos2d-js 3.0 beta,准备给javascript加一个osInfo的函数,来判断用户的系统信息以及网络信息。首先在项目目录下的frameworks/runtime-src/Classes/目录添加jsb_os_info.hpp,内容如下:#include "cocos2d_specifics.hpp"#include "cocos2d.h"#include #...

weixin_42504048的博客 293

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

native app 集成 cocos-2dx-js 3.11 (Android篇)

native app 集成 cocos-2dx-js 3.11 (Android篇),各种坑

nu的专栏 2651

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

cocos2d-js开篇 - JSB环境打造

我的开发环境需求: 1 cocos2d-js3.5以上 2 jsb打包apk 3 一个可以提示的ide 4 cocosstudio2.2.6以上功能 (1)官方的cocos-code-ide似乎一直不给力,eclipse那个更新都不跟新,直接就换成一套idea的了。不管1.2还是2.0感觉都不是很胜任开发。          码农需要的是一个可代码提示,且顺畅的ide,这样才免于开发痛

梓瑜的专栏 1564

蓝桥杯嵌入式备赛:第十一届真题里那个“浮点数比较”的坑,我是怎么绕过去的?

本文分享了蓝桥杯嵌入式竞赛第十一届真题中浮点数比较的常见陷阱及解决方案。通过分析浮点数精度问题,提出了使用误差范围比较、重新设计比较逻辑和使用定点数等实用方法,帮助参赛者避免类似错误,提升嵌入式开发技能。

weixin_30394669的博客 395

【cocos2d-js官方文档】一、搭建 Cocos2d-JS 开发环境

在本文中,我将展示如何在 Mac os 10.9(Maverics) 上搭建 Cocos2d-JS 开发环境。 下载必备的软件包 下载并安装WebStorm7。WebStorm7目前的稳定版本是7.0.3。为什么我们选择WebStorm?因为它提供了许多功能,如JavaScript代码的语法完成,调试,语法高亮,版本系统集成等,你可以去WebStorm的更多信息的官方网站。

qinning199的专栏 5万+

cocos2d-js webview

var webView = new ccui.WebView(); webView.setPosition(cc.p(this._actView.getContentSize().width/2, this._actView.getContentSize().height/2 -20)); webView.setContentSize(cc.size(this._actView.getConten

LANGZI7758521的专栏 4735

Cocos2d-x jsb + Cocos2d-html5 跨平台游戏开发(二)—— 遇到的坑

上一篇blog里总结了选择cocos2d-x javascript binding(后面简称jsb)和cocos2d-html5(后面简称h5)技术开发的原因,这篇总结一下半年来遇到的一些问题。希望能帮到遇到相同问题的人。 jsb和h5开发遇到的问题可以分为下面这几类: javascript语言本身的坑以及对语言不熟悉造成的使用上的错误引擎本身的bug或者API不兼容jsb和h5实现机

u013790419的专栏 2512

Cocos2d-html5 v3.0 RC0之JS与C++间通讯

Cocos2d-html5 v3.0 RC0之JS与C++间通讯 (PS:本人第一次写博客,如果有错,欢迎指正!不喜莫喷~) 随着 Cocos2d-x 的发展,Cocos2d-html5 也日益完善,JS接第三方SDK的需求也随之增加!为了方便同时管理Android和IOS,那么我们就要实现JS与C++间通讯,然后再加上已有的C++与Android和IOS间的通讯就可以完美实现JS接第三方SD

J&K的专栏 1247

在cocos creator中使用protobufjs(一)

本教程是帮助大家在cocos creator中如何使用protobufjs,以及解决protobufjs在原生环境下不能正常工作的问题。

奎特尔星球 6672

CocosCreator-Schedule计时器-设定及触发原理

计时器 JavaScript自带的定时任务 setTimeout 作用:设置一个定时器,在指定时间(毫秒)后触发,调用传入的回调函数。 参数类型:(function/code, delayTime, args…) function:         回调函数 code:              字符串形式的代码,会使用eval()执行,因此不推荐使

weixin_47879201的博客 5306

还原TexturePacker plist 文件以及图片的方法 (切开各小图片)

Python 脚本:(来自网络) unpack_plist.py 命令行: python unpack_plist.py  plist文件名称  例子: python unpack_plist.py  common      ## plist文件全名为 common.plist #!python import os,sys from xml.etree import Eleme

linux_chen的专栏 3万+
上一篇: 让XCode运行时自动更新资源(改进版2)
下一篇: webstorm 配置webserver选项,让其他ip设备可访问(如手机等测试效果)
linuxchen
博客等级 码龄24年 34粉丝 96原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值