initChipmunk:function() {
this.space = new cp.Space(); this.setupDebugNode(); //设置空间内刚体间联系的迭代计算器个数和弹性关系迭代计算器个数.
//chipmunk使用迭代计算器计算出空间内物体的受力关系.
//它建立一个大列表存放物体间所有的碰撞,连接等相互影响关系.根据实际情况传递某些相互作用.
//传递相互作用的数取决于迭代器的个数,每次迭代都使计算结果更精确.
//如果进行了过多的迭代,虽然物理影响效果会更好,但是这也会消耗过多的cpu处理时间.
//如果进行的迭代太少,物理模拟效果会不精确,或者使本该静止的物体没能静止下来.
//使用迭代器的个数在于平衡CPU性能和物理模拟精确度之间权衡.
this.space.iterations = ;
//设置空间的重力向量
this.space.gravity = cp.v(, -);
// 休眠临界时间
this.space.sleepTimeThreshold = 0.5;
this.space.collisionSlop = 0.5; this.addFloor();
this.addWalls(); var width = ;
var height = ;
var mass = width * height * /;
var rock = this.space.addBody(new cp.Body(mass, cp.momentForBox(mass, width, height)));
rock.setPos(cp.v(, ));
rock.setAngle();
var shape = this.space.addShape(new cp.BoxShape(rock, width, height));
shape.setFriction(0.3);
shape.setElasticity(0.3); var radius = ;
mass = ;
var body = this.space.addBody(new cp.Body(mass, cp.momentForCircle(mass, , radius,cp.v(, ))));
body.setPos(cp.v(, ( * radius + )));
var circle = this.space.addShape(new cp.CircleShape(body, radius,cp.v(, ))); circle.setElasticity(0.8);
circle.setFriction(); var ramp = this.space.addShape(new cp.SegmentShape(this.space.staticBody,cp.v(, ),cp.v(, ), ));
ramp.setElasticity(); // 弹性
ramp.setFriction(); // 摩擦
ramp.setLayers(NOT_GRABABLE_MASK); var sprite = this.createPhysicsSprite(cc.p(,));
this.addChild(sprite);
},
addFloor:function() {
var floor = this.space.addShape(new cp.SegmentShape(this.space.staticBody,cp.v(, ),cp.v(, ), ));
floor.setElasticity();
floor.setFriction();
floor.setLayers(NOT_GRABABLE_MASK);
},
addWalls:function() {
var wall1 = this.space.addShape(new cp.SegmentShape(this.space.staticBody,cp.v(, ),cp.v(, ), ));
wall1.setElasticity();
wall1.setFriction();
wall1.setLayers(NOT_GRABABLE_MASK); var wall2 = this.space.addShape(new cp.SegmentShape(this.space.staticBody,cp.v(, ),cp.v(, ), ));
wall2.setElasticity();
wall2.setFriction();
wall2.setLayers(NOT_GRABABLE_MASK);
},
createPhysicsSprite:function( pos ) {
var body = new cp.Body(, cp.momentForBox(, , ) );
body.setPos( pos );
this.space.addBody( body );
var shape = new cp.BoxShape( body, , );
shape.setElasticity( 0.5 );
shape.setFriction( 0.5 );
this.space.addShape( shape ); var sprite = cc.PhysicsSprite.create(res.b_ball_01);
sprite.setBody( body );
return sprite;
}

[cocos2d-js]chipmunk例子(一)的更多相关文章

  1. cocos2d js jsb XMLHttpRequest 中文乱码

    1.首先讲下怎样使用XMLHttpRequest 下面所说的是在cocos2d-x 2.2.2 或者 2.3 版本号中. 首先要明确cocos2d js事实上分两个版本号,一个是html5的版本号,另 ...

  2. cocos2d js的一些tip

    cocos2d-js-v3.2-rc0 cc.director.end();//退出app cc.Application.getInstance().openURL("http://www. ...

  3. cocos2d js ClippingNode 制作标题闪亮特效

    1.效果图: 之前在<Android 高仿 IOS7 IPhone 解锁 Slide To Unlock>中制作了文字上闪亮移动的效果,这次我们来看下怎样在cocos2d js 中做出类似 ...

  4. js小例子(简单模糊匹配输入信息)

    该例子实现的是用户输入信息或者字母时可以搜索出来,鼠标点击选择 <!DOCTYPE html> <html> <style> p{ width:200px; hei ...

  5. js小例子(标签页)

    运用js写的一个小例子,实现点击不同的标签出现不同的内容: <!DOCTYPE html> <html> <head> <meta chaset=" ...

  6. js基础例子dom+原型+oop基础知识记录01

    //oo:概念是计算机中对于现实世界的理解和抽象的方法 //由计算机利用编程技术发展到现在的产物 //面向对象几要素 //对象:由属性和方法组成的集合 //属性:保存数据,存储在对象内存空间中的唯一的 ...

  7. 如何判断一个DOM元素正在动画,一个CSS“阻塞”JS的例子

    一般情况下CSS不会直接影响JS的程序逻辑,但是以CSS实现动画的话,这个便不太确定了,这个故事发生在与UED迁移全局样式的过程. 曾经我有一段实现弹出层隐藏动画的代码是这个样子的: if (this ...

  8. cocos2d触碰例子代码

    // // TestLayer.h // MiniTD // // Created by OnePiece on 12-7-30. // Copyright 2012年 __MyCompanyName ...

  9. js基础例子购物车升级版(未优化版)

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

随机推荐

  1. Java 基础-运算符

    Java运算符 算术运算符 赋值运算符 比较运算符 逻辑运算符 位运算符 运算符优先级 1. 算术运算符 运算符 运算 范例 结果 + 正号 +3 3 - 负号 b=4;-b -4 + 加 5+5 1 ...

  2. [每天一道A+B]签到检测程序

    签到检测程序,解析github提供的api内的json,解决了服务器和本地时间不同步的问题(时差+8H),实现按日期更新当前签到表.下一步是从api获取organization的信息,求出未签到的成员 ...

  3. [HDOJ2639]Bone Collector II(第k优01背包)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2639 题意:求01背包的第k优解 dp(i, j)表示容量为j时的i优解 对于第二维的操作和01背包几 ...

  4. Git基础(三)

    本章 就开始和大家一起学习第三块内容:远程仓储的使用操作.要参与任何一个 Git 项目的协作,必须要了解该如何管理远程仓库.远程仓库是指托管在网络上的项目仓库,可能会有好多个,其中有些你只能读,另外有 ...

  5. hdu 5067 Harry And Dig Machine (状态压缩dp)

    题目链接 bc上的一道题,刚开始想用这个方法做的,因为刚刚做了一个类似的题,但是想到这只是bc的第二题, 以为用bfs水一下就过去了,结果MLE了,因为bfs的队列里的状态太多了,耗内存太厉害. 题意 ...

  6. 解同余式ax ≡ c(mod m)

    将式子变形为 ax-c=my 可以看出原式有解当且仅当线性方程ax-my=c有解 设g = gcd(a, m) 则所有形如ax-my的数都是g的倍数 因此如果g不整除c则原方程无解. 下面假设g整除c ...

  7. 属性readwrite,readonly,assign,retain,copy,nonatomic

    copy:建立一个索引计数为1的对象,然后释放旧对象 对NSString对NSString 它指出,在赋值时使用传入值的一份拷贝.拷贝工作由copy方法执行,此属性只对那些实行了NSCopying协议 ...

  8. java金额的加减乘除

    package com.wedge.edp.framework.common.util; import java.math.BigDecimal; /** * 金额的加减乘除 */ public cl ...

  9. python练习程序(批量重命名)

    # -*- coding: cp936 -*- import sys,os,string d=0; path="F://test" srcfile=os.listdir(path) ...

  10. dede调用第一张大图,非缩略图

    1.找到include/extend.func.php加入现在函数 function firstimg($str_pic) { $str_sub=substr($str_pic,0,-7)." ...