[cocos2d-js]chipmunk例子(一)
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例子(一)的更多相关文章
- cocos2d js jsb XMLHttpRequest 中文乱码
1.首先讲下怎样使用XMLHttpRequest 下面所说的是在cocos2d-x 2.2.2 或者 2.3 版本号中. 首先要明确cocos2d js事实上分两个版本号,一个是html5的版本号,另 ...
- cocos2d js的一些tip
cocos2d-js-v3.2-rc0 cc.director.end();//退出app cc.Application.getInstance().openURL("http://www. ...
- cocos2d js ClippingNode 制作标题闪亮特效
1.效果图: 之前在<Android 高仿 IOS7 IPhone 解锁 Slide To Unlock>中制作了文字上闪亮移动的效果,这次我们来看下怎样在cocos2d js 中做出类似 ...
- js小例子(简单模糊匹配输入信息)
该例子实现的是用户输入信息或者字母时可以搜索出来,鼠标点击选择 <!DOCTYPE html> <html> <style> p{ width:200px; hei ...
- js小例子(标签页)
运用js写的一个小例子,实现点击不同的标签出现不同的内容: <!DOCTYPE html> <html> <head> <meta chaset=" ...
- js基础例子dom+原型+oop基础知识记录01
//oo:概念是计算机中对于现实世界的理解和抽象的方法 //由计算机利用编程技术发展到现在的产物 //面向对象几要素 //对象:由属性和方法组成的集合 //属性:保存数据,存储在对象内存空间中的唯一的 ...
- 如何判断一个DOM元素正在动画,一个CSS“阻塞”JS的例子
一般情况下CSS不会直接影响JS的程序逻辑,但是以CSS实现动画的话,这个便不太确定了,这个故事发生在与UED迁移全局样式的过程. 曾经我有一段实现弹出层隐藏动画的代码是这个样子的: if (this ...
- cocos2d触碰例子代码
// // TestLayer.h // MiniTD // // Created by OnePiece on 12-7-30. // Copyright 2012年 __MyCompanyName ...
- js基础例子购物车升级版(未优化版)
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...
随机推荐
- AOJ 0525 - Osenbei
http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=50785 翻译:http://blog.csdn.net/acm_10000h ...
- MSAA, UIA brief explanation
MSAA, UIA brief explanation 2014-07-24 Reference [1] MSAA, UIA brief explanation [2] Testing Tools [ ...
- Jenkins+Maven+Git搭建持续集成和自动化部署的配置手记
前言 持续集成这个概念已经成为软件开发的主流,可以更频繁的进行测试,尽早发现问题并提示.自动化部署就更不用说了,可以加快部署速度,并可以有效减少人为操作的失误.之前一直没有把这个做起来,最近的新 ...
- ubuntu 搭建Erlang开发环境
首先,打好库: sudo apt-get install build-essential sudo apt-get install libncurses5-dev sudo apt-get insta ...
- tomcat启动时报:IOException while loading persisted sessions: java.io.EOFException的解决方案
错误代码如下: 严重: IOException while loading persisted sessions: java.io.EOFException java.io.EOFException ...
- CSS控制超链接
一.伪类 CSS控制元素的某种状态---偽类(用于向某些选择器添加特殊的效果) 偽类的语法:元素标签 偽类名称{属性:属性值;} 二.超链接 a:link:未访问的链接 ...
- blade全集
http://daylerees.com/codebright/blade
- Qt环境搭建(Qt Creator)
简述 上一节中介绍了如何进行Qt和Visual Studio的下载安装,随后演示了如何将Qt集成到Visual Studio中,并完成了我们第一个Qt小程序-Hello World.下面主要讲解如何利 ...
- tornado 实践 - 目录结构
. ├── README.md └── store_management ├── Session.vim ├── auth │ ├── __init__.py │ ├── views.py ├ ...
- (转)Python 字典排序
我们知道Python的内置dictionary数据类型是无序的,通过key来获取对应的value.可是有时我们需要对dictionary中 的item进行排序输出,可能根据key,也可能根据value ...