问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何用Cocos2d-JS制作一个微信报名宣传页

发布网友 发布时间:2022-04-29 23:17

我来回答

1个回答

热心网友 时间:2022-04-11 21:25

  开发环境与新建项目
  如果没用过Cocos2d-JS的朋友们,可以到cocos官网上去下载,此处我们用的是3.0final,或者,我们可以下载Lite版本的Cocos2d-JS,lite版本可以很方便的根据需求去下载所需要的模块,可以很大的减少代码的体积,可在此下载,我们需要用到的模块有core?actions?menuprogress-timer,在该页面中选择Customized Version然后勾选上述几个模块,并点击下载。
  此处我们使用cocos 命令行来创建新的工程
  $cd cocos2d-js/tools/cocos2d-console/bin $./cocos new weChat -l js --no-native $cd weChat/ $../cocos run -p web

  环境搭建并不是这篇文章的重点,更详细的信息可以参考:《搭建 Cocos2d-JS 开发环境》。
  主界面及其页面切换框架的实现
  程序的入口代码在main.js中,用编辑器打开并修改为下面的代码。
  cc.game.onStart = function () { cc.view.adjustViewPort(true); cc.view.enableAutoFullScreen(false); var mode = cc.sys.isMobile && window.navigator.userAgent.indexOf("MicroMessenger") != -1 ? cc.ResolutionPolicy.FIXED_HEIGHT : cc.sys.isMobile ? cc.ResolutionPolicy.FIXED_WIDTH : cc.ResolutionPolicy.SHOW_ALL; cc.view.setDesignResolutionSize(640, 831, mode); //load resources cc.LoaderScene.preload(g_resources, function () { cc.director.runScene(new MainScene()); }, this);};cc.game.run();

  关键点解析如下:
  1.设置浏览器meta来适配屏幕,引擎内部会根据屏幕大小来设置meta的viewport值,会达到更好的屏幕适配效果。
  2.针对手机浏览器和PC浏览器启用不同的分辨率适配策略。
  3.预加载图片声音等资源。 cc.LoaderScene.preload会生成一个“加载中 x%”的界面,等待资源加载结束后,调用第二个参数传入的匿名函数。 对于基于html的游戏,页面是放在服务器端供浏览器下载的,为了获得流畅的用户体验,cc.LoaderScene.preload让浏览器先把远程服务器的资源缓存到本地。需要预加载的资源定义在src/Resources.js文件中。
  4.启动游戏的第一个场景。
  主界面分为2个部分,第一个部分是不随着屏幕移动而移动的向上箭头和音乐按钮,第二个部分是根据用户滑动屏幕而改变的场景。
  我们先根据需要,构建出需要的函数,并一一实现他,这里我们使用cc.Scene.extend()来扩展出一个scene,并在这个scene中构建出我们需要功能,并一一实现他。
  由引擎提供的cc.Scene.extend方法,让js能实现高级面向对象语言的继承特性。 onEnter方法是场景初始化完成即将展示的消息回调,在onEnter中必须调用this._super();来确保Scene被正确的初始化。
  用于初始化UI的函数 initUI()
  用于初始化touch事件的函数 initTouch()。
  用于切换页面的函数changePage()和记录当前页面的参数currentIndex
  用于控制箭头显示隐藏的函数toggleArrow()
  用于控制音乐按钮回调的函数
  var MainScene = cc.Scene.extend({ listener: null, accelListener: null, currentIndex: 0, sceneList: [], ctor: function () { this._super(); cc.spriteFrameCache.addSpriteFrames(res.firstPage_plist); }, onEnter: function () { this._super(); this.initUI(); this.addTouch(); }, initUI: function () { }, toggleMusicCallback: function (sender) { }, togleArrow: function (status) { }, addTouch: function () { }, changePage: function (index, next) { } });

  接下来我们一一来实现。
  首先,我们来实现音乐按钮与箭头,我们在initUI()中添加如下代码。
  var bg = new cc.Sprite(res.background_png); bg.anchorX = 0; bg.anchorY = 0; bg.scaleX = cc.winSize.width / bg.width; bg.scaleY = cc.winSize.height / bg.height; this.addChild(bg, 0); this.arrow = new cc.Sprite("#arrow.png"); this.arrow.setPosition(cc.pAdd(cc.visibleRect.bottom, cc.p(0, 50))); var posY = this.arrow.y; var arrowAction = cc.repeatForever(cc.sequence(cc.spawn(cc.moveTo(0.8, cc.p(this.arrow.x, posY + 30)).easing(cc.easeIn(0.5)), cc.fadeOut(1)), cc.delayTime(0.8), cc.callFunc(function () { this.arrow.y = this.arrow.y - 30; this.arrow.opacity = 255; }, this))); this.arrow.runAction(arrowAction); this.addChild(this.arrow, 1); this.menuItemToggle = new cc.MenuItemToggle(new cc.MenuItemImage("#music.png"), new cc.MenuItemImage("#music_sel.png"), this.toggleMusicCallback, this); this.menuItemToggle.setPosition(cc.pAdd(cc.visibleRect.right, cc.p(-this.menuItemToggle.width / 2 - 30, 140))); var togglemenu = new cc.Menu(this.menuItemToggle); togglemenu.anchorX = 0; togglemenu.anchorY = 0; togglemenu.x = 0; togglemenu.y = 0; this.addChild(togglemenu, 1);

  我们在屏幕中,添加了一个背景的sprite,并且,将这个背景进行缩放,以让其在各种情况下都布满屏幕,并且我们为箭头设置了一系列动画,让其能够循环播放,Cocos2d-JS,为了方便广大开发者,提供了丰富多彩的动画(actions)。下面,我们先简单的介绍一下几个常用的action的API。
  cc.repeatForever(action) 无限循环某个action
  cc.sequence(action1,action2,...)顺序执行括号里面的action
  cc.spawn(action1,action2,...)同时执行括号里面的action
  cc.moveTo(ration,targetPoint)从当前位置在ration(秒)时间内移动到点targetPosition的action
  cc.easeIn(rate) 以rate为ease参数执行easeIn的action,一般是这样使用的action.easing(cc.easeIn(rate))
  fadeOut(ration) 在ration时间内从屏幕淡出的action
  cc.delayTime(ration) 延时ration时间的action,通常用于等待一段时间后再播放某个action
  cc.callFunc(function) 用于执行action的回调,通常在某个action结束后需要执行某段函数的话,可以使用它。
  通过上述的简单介绍,是不是对action有了一个初步的了解了呢,我们实际来操作一下:
  我们需要一个箭头,往上走并慢慢减速和透明,最终消失,然后在原来的位置出现重复下去,所以我们可以归纳为,移动+淡出-->回到初始位置-->移动+淡出。这样我们很清晰就归纳出如何去写这个action了,我们使用cc.spawn(cc.moveTo(),cc.fadeOut())就构建出了移动+淡出这个效果,然后使用cc.callFunc()设置了这次action播放完毕要修改的位置回到初始位置,接着我们使用cc.sequence()来顺序执行这两个action,这样一来,一次action就编写完成了,最后我们只需要将这个action使用cc.repeatForever()就完成了我们需要的重复播放。
  细心的读者可能会问了,代码中的位置设置,为什么是cc.pAdd(cc.visibleRect.right,cc.p())?这是cocos为了让大家更方便的做屏幕适配所定义的9个点,这9个点会根据不同屏幕大小来动态设定,例如cc.visibleRect.center,这个点的位置,无论在什么分辨率的屏幕下,都是在屏幕的正*,这样我们就可以根据这个点的位置来做相对布局,已达到适配屏幕的目的,例如上面的代码this.arrow.setPosition(cc.pAdd(cc.visibleRect.bottom, cc.p(0, 50)));就是将arrow这个sprite,放在屏幕的底部的正*,然后再在y轴上加50个像素,这样,无论屏幕的大小,都能保持在屏幕的底部的正*向上50个像素。这也是我们做相对布局的基础。后续的布局,我们都会根据这些点的坐标来设置。
  
如何在Cocos2d-JS游戏中快速接入微信SDK

登录公众平台后,点击左下角的 设置-公众号设置。右侧有一个js接口安全域名的设置,这里可以绑定3个用到的域名,必须填入顶级域名。然后点击左下角的 开发者中心,右侧会有一个AppID和一个AppSecret。这两个先记录下来,过后会用到。3.生成token 打开页面 微信公众平台接口调试工具 并且填入刚才的appid和...

如何在Cocos2d-x中集成安卓版微信SDK

(3)导入Eclipse生成APK导入libcocos2dx项目和Cocos2dxWechat项目到Eclipse中。在真机中成功运行Cocos2dxWechat.apk。4.申请创建微信应用这一步主要是在微信开放平台上申请创建移动应用,获取AppID。微信开放平台的网址(1)注册帐号,进入管理中心,点击创建移动应用。(2)第一步是填写应用名,描述,图标等...

unity3d 制作的游戏如何在微信上运行?

1.HTML5目前的盈利模式主流是:广告。现在各种公众号也都会在消息页面里面插广告,但是由于微信功能限制的问题,所以广告究竟播放了多少次不好统计,不过应该有相应的微信广告SDK了吧……这个不清楚,广告之前是说在微信做不了的,不过最近慢慢的发现可以做耶……H5游戏的话,最好的也就是用网站的PV数去...

如何在cocos2dx接入微信登录

打开 JS接口签名校验工具填入相应的数据:1)jsapi_ticket:填入上一步获取的ticket2)noncestr:这里随机生成一个字符串填进去(VQhYOUJRz6RolHqN)3)timestamp:这里填入一个时间戳,去掉毫秒的3位(如:1420870884)-这里尽量写ticket生成后的一段时间,newDate()-0可以获取当前的时间戳4)url:准备放页...

webgl3d开源引擎?

下载类库新建HTML页面,引入相应类库在onload之后,编写cocos2d-js代码,从cc.game.run()开始。入口代码其实跟SDK开发方式的main.js一样。这里更推荐使用SDK方式,因为可以通过阅读源代码获取API的使用说明。兄弟,我和你一样有这个疑问。不过最终弄懂了。请推荐一些类似sketchfab这样的网站?主要使用WEBGL技术...

前段开发需要学什么?

AngularJS是一个JavaScript框架。它可通过script标签添加到HTML。 web前端流程 1、根据设计好的效果图(一般是一些psd文件)开始利用Photoshop进行切图,切出需要的图片。 2、使用HTML、CSS、JS等技术开始实现效果图的页面,同时需要和后台人员交流为后台数据留下接口和数据填充的区域等。 3、将最终前端完成的页面交给后台...

django如何实现二维码?

制作二维码 这里有一个库qrcode,专门用于制作二维码,这个我以前也介绍过,下面我再简单介绍一下这个库的安装和使用: 1.安装qrcode,这个直接在cmd窗口输入命令“pipinstallqrcode”就行,如下: 2.安装成功后,我们就可以编写相关代码来生成二维码了,测试代码如下,很简单,也很好理解: 点击运行程序,生成的二维码如下: 手...

h5小游戏怎么制作?

1、原生开发 就是自己写HTML5代码(HTML/CSS/Javascript),或者使用第三方引擎,例如国内常见的白鹭、Cocos2d-Js,以及国外的http://Phaser.io,这个极力推荐,虽然国内用的人不多。2、第三工具 另外就是通过一些第三方工具来实现游戏的生成与定制。这里也可以分为两类 A 套模版 有简单的直接套模版...

egret 和cocos2d-x-js哪个目前更稳定更好用

如果大型游戏,强烈建议不要使用cocos2d-js 我们目前的几个项目都是cocos2d-js开发的,我打算把这几个项目转egret。有如下几个理由:1、cocos ide有BUG:断点会崩溃、代码提示很差、内存太高、虚拟机的菜单栏会影响事件(迭代了很多版本,这菜单栏BUG都没修复)2、studio的工作流在几个引擎中是最差的...

H5微信小游戏制作流程是怎样的

H5微信小游戏的制作流程是一个细致且系统的过程,主要包括以下几个关键步骤:一、前期准备 工具与环境搭建:首先,需要准备微信开发者工具,这是腾讯官方提供的集成开发环境(IDE),支持小游戏项目的创建、代码编写、调试以及预览。注册与认证:开发者需注册成为微信公众平台开发者,并申请开通小游戏功能,...

如何制作3d相册 用ps制作的3d贴图 ps3d图片制作教程 三d图怎么制作 3d制作 3d立体图形怎么制作 3d文字制作 3d立体人物制作软件 怎样制作3d立体效果图
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
10岁孩子初学者古筝要买什么样的好 ...后部是横向裂纹,较多,有好多年了,请问是何原因?谢谢 舌面上有裂纹,是舌炎吗?用什么药治疗? ...单位的回复邮件,全是英文啊!! 请问我要怎么回复?他是想问我什么时 ... 有哪些期《RunningMan》是值得推荐给别人看的 runningman2011全集下载, running man 全集中字高清下载 打包的哦 r 上饶信州中等专业学校可以考大学吗 内分泌是一个什么系统 叶利钦与戈尔巴乔夫曾经争论过什么? 通货膨胀缺口的通货膨胀缺口的出处是那? 有哪些书比较适合学习软件测试呢? FRM考试网上报名需要怎么做 推荐几部软件测试方面的书(初学者) 零基础学习软件测试,推荐几本相关书籍 网页报名表如何制作 怎么做一个报名的页面 车载HUD有啥优点啊? 线上销售活动门票,在制作报名网页的时候需要注意些什么? 什么是HUD? 如何把报名网页2页纸调成一张 哪些车型有HUD功能 抬头显示 hud 哪个好 小车上的HUD是什么开关? 车载HUD是什么啊,有什么用啊? hud是什么? hud是什么?有什么用? hud放大是什么意思 多级用户系统的数据库应该怎么设计 3400.35.52怎么读? 三星双门冰箱,发现冷冻室不制冷,断电5小时后恢复正常了,可冷藏又不制冷了,是什么原因?怎么解决? 电竞赛事报名网页用HTML代码怎么做? 我想自学软件测试,想问问看哪些书比较好?能告诉我具体的这些书籍的书名吗? 做测试看哪些书籍比较好?麻烦推荐些经典的 关于软件测试的推荐书籍。哪些关于软件测试的书写的比较好的? 有什么好书推荐学习的,软件测试的 耽美校园文主角叫马娆,一受三攻,受在宿舍排行老三,另外三个都是攻,老大姓齐,老二姓顾,老四姓罗! 北京米赫属于哪家上市公司 谁能给我推荐几本关于软件测试方面的书籍? 找一本校园耽美文 受是农村来的 攻有三个都是他寝室 我学是计算机专业的,以后若做软件测试需要巩固哪些方面的知识? 软件测试要学习什么? 一部校园耽美文 受是农村来的 有三个攻 ps:不是寝室美狼 地点是在大学里,受和攻在一个宿舍,受睡上铺。攻每天晚上都爬到受的床上,另一对的受还欺负(戏弄)过主 找耽美小说,一受3攻,一攻是受的哥哥,受一开学就遇到了两和攻,后... 小受和小攻是一个宿舍,小受打篮球特别好,刚开始两个人互相看不上,后来好上了? 以前看过一本耽美小说求名字啊~讲的大概是一个小受三个攻,其中好像 小攻小受在一起的住宿舍的耽美文 bl小说,攻和受是同一个宿舍的,受一开始暗恋另外一个舍友,不喜欢攻,攻的名字有个萧字 十字韧带断裂是什么症状 有一本耽美小说是有一个受三个攻,是一篇虐文3个攻一开始不把受当回事儿,其中一个说还只是把那个受当替