如何用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),支持小游戏项目的创建、代码编写、调试以及预览。注册与认证:开发者需注册成为微信公众平台开发者,并申请开通小游戏功能,...