cocos2d-js

cocos2d JS-(JavaScript) 冒泡排序

纵饮孤独 提交于 2021-02-10 08:17:23
思想: 比较相邻的元素。如果第一个比第二个大,就交换他们两个。 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。 针对所有的元素重复以上的步骤,除了最后一个。 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。 效率: 时间复杂度:平均 O(n) 空间复杂度:需要辅助空间 O(1) 稳定性:稳定 js代码: function bubbleSort (arr) { var i = arr.length, j; var tempExchangVal; while (i > 0) { for (j = 0; j < i - 1; j++) { if (arr[j] > arr[j + 1]) { tempExchangVal = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = tempExchangVal; } } i--; } return arr; } var arr = [ 3, 2, 4, 9, 1, 5, 7, 6, 8]; console.log( "before: "+arr); var arrSorted = bubbleSort(arr); console.log( " after: "+arrSorted); 来源: oschina 链接: https://my

cocos2d-Js 各类碰撞检测

◇◆丶佛笑我妖孽 提交于 2020-11-21 10:10:17
这里总结一下点、圆、矩形之间的简单碰撞检测算法(矩形不包括旋转状态) 点和圆的碰撞检测: 1.计算点和圆心的距离 2.判断点与圆心的距离是否小于圆的半径 isCollision: function (point, circle) { // 点与圆心的距离 var distance = Math.sqrt(Math.pow(point.x - circle.x, 2) + Math.pow(point.y - circle.y, 2 )); // 圆的半径 var radius = circle.getContentSize().width / 2 ; // 如果点与圆心距离小于圆的半径,返回true if (radius > distance) { return true ; } else { return false ; } } 点和矩形的碰撞检测: 1.获取矩形的左上角坐标p1和右下角坐标p2 2.判断点p的x坐标是否在p1和p2的x坐标之间,并且p的y坐标是否在p1和p2的y坐标之间 isCollision: function (point, rect) { // 获得矩形的左上角坐标p1和右下角坐标p2 var p1 = cc.p(rect.x - rect.width/2, rect.y + rect.height/2 ); var p2 = cc.p(rect.x +

摩比秀换装游戏系统设计与实现

爱⌒轻易说出口 提交于 2020-04-18 11:49:59
如何开发一个可维护性,可扩展,跨平台的换装游戏呢,本文从产品设计、龙骨动画、前端再到后端如何管理等角度,来介绍摩比秀换装模块从0到1的实现过程。 项目背景   我们一直在思考,如何能激励学员自主学习的积极性?从上课表现良好奖励摩比星、app上及时完成课后练习挣得摩比星等,但这些学员获得的星星多了也没有兴趣了,我们需要一个途径能让学员挣得的摩比星有价值,这样就能产生一个良性的循环来激励学习。这样的背景下,摩比秀诞生了。   我们的学员可以在摩比秀通过摩比星来兑换不同虚拟服装,穿上后在课前点名环节就可以穿着这件衣服展示在我们的IPS上,同学们都可以看到,同时还可以领养小宠物,领养宠物之后就可以进行各种各样的学习了,比如:“编程启蒙”,让孩子们感受程序的魅力。   今天就来说一说换装这一块具体的实现方案。 体验地址: 1) 摩比秀:http://shop.mobbyxt.com/html/index/login.html   测试账号:18201652946/20140706 分校选北京 2)小demo :https://activity.firstleap.cn/egretLeapDemo/index.html 技术选型 我们考虑到跨平台性,需要在App里、服务号、白板端等场景下使用,决定用H5来开发,然后又对比了一些游戏引擎Cocos2d-js和Egret等,最终决定采用Egret

cocos2d-js Chipmunk刚体:cp.Body 笔记

♀尐吖头ヾ 提交于 2020-04-07 00:53:17
1 游离和静态刚体 一般当我们创建一个刚体并将它添加到空间上后,空间就开始对之进行模拟,包括了对刚体位置、速度、受力以及重力影响等的模拟。没被添加到空间(没有被模拟)的刚体我们把它称之为 游离刚体 。游离刚体最重要的用途就是用来当作静态刚体,但是你仍然可以使用它们来实现直接控制物体,如移动平台。 静态刚体是游离刚体,但被设置了一个特殊的标志以便让Chipmunk知道它们从不移动除非你要求这么做。静态刚体有两个目的。最初,它们被加入用 来实现休眠功能。因为静态刚体不移动,Chipmunk知道让那些与静态刚体接触或者连接的物体安全的进入休眠。接触或连接常规游离刚体的物体从不允许休 眠。静态刚体的第二个目的就是让Chipmunk知道,关联到静态刚体的碰撞形状是不需要更新碰撞检测数据的。Chipmunk也不需要操心静态物体之间 的碰撞检测。通常所有的关卡几何图形都会被关联到一个静态刚体上除了那些能够移动的东西,例如平台或门等。 每一个空间都有一个专用的静态刚体(staticBody),你可以使用它来添加静态形状。Chipmunk也会自动将形状作为静态形状添加到静态刚体上。 2.属性 Chipmunk为刚体的多个属性提供了getter/setter函数。如果刚体在休眠状态,设置大多数属性会自动唤醒它们。如果你想,你也可以直接在 cp.Body 结构体内设置字段。它们都在头文件中有记录。

JavaScript超越了Java,c,python等等成为Stack Overflow上最热门的标签

ⅰ亾dé卋堺 提交于 2020-03-25 09:04:31
JavaScript超越了Java,c,python等等成为Stack Overflow上最热门的标签 在2015年6月至今,JavaScript超越了Java,c,python等等成为Stack Overflow上最热门的标签,并总量操作第二第三的和。 新潮的Web开发技术,比如React,Node.js,还有AngularJS正在逐渐起势,都是用的js(es6)。 全栈工程师最青睐的技术,JS 第一 前端开发者最青睐的技术,JS 自然第一 后端开发者最青睐的技术,JS 第一 学生程序员最青睐的技术,JS 第二 JavaScript 是这个星球上最受欢迎的编程语言。而且后端开发者甚至更喜欢使用JavaScript来工作。 根据职业划分的技术栈 Javascript 可以做什么 1. Web 前端 相信这个这个是毫无疑问的,在 Web 前端的地位目前是没有任何语言能撼动它的霸主地位。 image.png 2. 后端 Nodejs Node.js 是一个 Javascript 运行环境(runtime environment),发布于2009年5月,由Ryan Dahl 开发,实质是对 Chrome V8 引擎进行了封装。Node.js 对一些特殊用例进行优化,提供替代的 API,使得V8在非浏览器环境下运行得更好。 使 Javascript 走向了服务端,这使得 Web

Cocos2d-js: effect on cocos2d-js application running on browser while a move from one application to another application

时光毁灭记忆、已成空白 提交于 2020-01-16 03:24:25
问题 i was running parkour game given on cocos2d website on my browser. everything was working fine, but when i move from my browser to sublime text and returned to my browser, the running player start to show some unexpected behaviour, the player disappeared from its position and and after few second it fall on the ground and then start running again .whenever i move from one application to another it happens. i don't why its happening. could some one tell me how to prevent this from happen? here

cocosCreator 接入QQ排行榜子域中遇到的坑二:图片设置颜色问题

↘锁芯ラ 提交于 2020-01-15 00:49:11
最近移植微信小游戏到QQ平台,移植排行榜时遇到如下问题: Canvas.js:60 Uncaught TypeError: Cannot redefine property: clientWidth at Function.defineProperty (<anonymous>) at new Canvas (Canvas.js:60) at HTMLDocument.createElement (document.js:55) at Object.getColorizedImage (cocos2d-js-min.a8f43.js:1) at Object.draw (cocos2d-js-min.a8f43.js:1) at r._commitComp (cocos2d-js-min.a8f43.js:1) at g.150.y._render (cocos2d-js-min.a8f43.js:1) at g.150.y._color (cocos2d-js-min.a8f43.js:1) at g.150.y._updateRenderData (cocos2d-js-min.a8f43.js:1) at g.150.y._worldTransform (cocos2d-js-min.a8f43.js:1) 这个问题最终抛出的地方是引擎里面:

How to get Sprite pixel alpha information in cocos2d js/c++

人走茶凉 提交于 2020-01-07 03:15:09
问题 I am working on a scratch and win game, I used clipper node for this. But I want to know the event when whole sprite is clippe? Is there any other way to know it, plz help me 回答1: I solved this issue by using following method:- I create one rendure texture and add an sprite on it. I found answer here:- http://discuss.cocos2d-x.org/t/render-texture-get-percentage-of-transparent/21123 here is the code:- var WINDOW_WIDTH = cc.director.getWinSize().width; var WINDOW_HEIGHT = cc.director

How to save a variable to Android using Cocos2D-JS?

最后都变了- 提交于 2019-12-20 01:12:35
问题 I am trying to save a high score integer to the user's Android system, so that it can persist throughout all game-play experience. I have read that using Cocos2D-X one can use NSUserDefaults but this doesn't seem to be available in the Cocos2D-JS API at all. Anyone has any experience with this, is there any other efficient way how to tackle this issue? 回答1: When using Cocos2D-JS for compiling native apps, you can simply use localStorage just like if you were running your game in the browser

cocos2d-js 入门一 ([isNaN()和isFinite(),字符和Number之间的转化)

你说的曾经没有我的故事 提交于 2019-12-19 05:40:52
isNaN() : 用于检查其参数是否是非数字值。// 提示:是非数字哦。(not a number) document.write(isNaN(0) ) //返回false document.write(isNaN(5-2) ) //返回false document.write(isNaN ("Hello") ) //返回true isFinite(number) 函数用于检查其参数是否是无穷大。 如果number是有限的,则返回true. 如果 number 是 NaN(非数字)或者是无穷大,则返回false; 2):字符: 字符串的简单操作例子: var a = "cssrain"; var b = a.charAt(a.length-1); // 从字符串a中截取最后一个字符。 输出:n var c = a.substring(0 , 2); // 从字符串a中截取第1,2个字符。 输出:cs var d = a.indexOf('s'); // 从字符串a中查找第一个s出现的位置。 输出:1 3):数字跟字符之间的转换: 数字转字符: var number_to_string = number + “ ”; //方法1:添加一个空的字符串。 var number_to_string =String(number); //方法2:使用String()函数。 var