[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" ...
随机推荐
- JSON(3)Google解析Json库Gson
本文参考 : http://www.cnblogs.com/chenlhuaf/archive/2011/05/01/gson_test.html 1.资料 官网: http://groups.goo ...
- Incorrect key file for table '/tmp/#sql_882_0.MYI'; try to repair it
修表方法如下: 一法:. check table 和 repair table 方法1,进入Mysql 的Dos控制台,输入密码进入 2,use database;(你的数据库名) 3, check ...
- UVa 12100 (模拟) Printer Queue
用一个队列模拟,还有一个数组cnt记录9个优先级的任务的数量,每次找到当前最大优先级的任务然后出队,并及时更新cnt数组. #include <iostream> #include < ...
- Codeforces 500A - New Year Transportation【DFS】
题意:给出n个数,终点t 从第i点能够跳到i+a[i],问能否到达终点 #include<iostream> #include<cstdio> #include<cstr ...
- POJ 1422 Air Raid (最小路径覆盖)
题意 给定一个有向图,在这个图上的某些点上放伞兵,可以使伞兵可以走到图上所有的点.且每个点只被一个伞兵走一次.问至少放多少伞兵. 思路 裸的最小路径覆盖. °最小路径覆盖 [路径覆盖]在一个有向图G( ...
- Android命令行播放MP3音乐
/*************************************************************************** * Android命令行播放MP3音乐 * 说 ...
- java实现的kmp算法
package DataStructure; import java.util.ArrayList; import java.util.List; //KMP算法的实现 //以下代码由freedom结 ...
- hibernate3和spring整合的一些方式
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...
- 【英语】Bingo口语笔记(10) - 常见词汇的缩读
- JAVA虚拟机内存分配与回收机制
Java虚拟机(Java Virtual Machine) 简称JVM Java虚拟机是一个想象中的机器,在实际的计算机上通过软件模拟来实现.Java虚拟机有自己想象中的硬件,如处理器.堆栈.寄存器等 ...