1. cocos2d-js chipmunk物理引擎入门笔记
Chipmunk引擎的核心概念: 1.空间(space) 物理空间,所有的物体都在这个空间发送 2.物体(body) 物理空间中的物体 3.形状(shape) 物体的形状 4.关节(joint) 用于连接两个物体的约束 相关教程:http://www.cocoachina.com/bbs/read.php?tid=220250 http://www.cocos.com/doc/tutorial/show?id=1491 http://www.ladeng6666.com/blog/2012/06/22/让刚体听我的-applyforce、applyimpulse、setlinearvelocity/
效果预览:
var SPRITE_WIDTH = 64;//物体宽 var SPRITE_HEIGHT = 64;//物体高 // bottom new cp.SegmentShape(staticBody,cp.v(0,0),cp.v(winSize.width, // top
addNewSpriteAtPosition: function (p) { var DEBUG_NODE_SHOW = true;//调试遮罩 { cc.log("addNewSpriteAtPosition"); //cp.Body构造函数创建了一个动态的物体,构造函数第一个参数是质量,这里的1是一个经验值, //可以通过它的大小而改变物体的物理特性 //第二个参数是惯性,它决定了物体运动时候收到的阻力//设置惯性使用cp.momentForBox函数 //cp.momentForBox函数是计算多边形的惯性值 //cp.momentForBox第一个参数是惯性矩形,这的1也是个经验值,第二个参数是设置物体的宽度,第三个参数是物体的高度 //类似的函数还有很多 如:cp.momentForBox、cp.momentForSegment和cp.momentForCircle等 var body = new cp.Body(1,cp.momentForBox(1,SPRITE_WIDTH,SPRITE_HEIGHT)); //设置物体中心(物体的几何中心) body.setPos(p); //添加物体到空间 this.space.addBody(body); //创建形状对象 var shape = new cp.BoxShape(body,SPRITE_HEIGHT); shape.setElasticity(0.5); shape.setFriction(0.5); this.space.addShape(shape); //创建物理引擎精灵对象 //ccPhysicsSprite由cocos2d-JS提供的物理引擎对象, //用cc.PhysicsSprite类自动地将精灵和物理位置和旋转角度同步起来, //在游戏循环函数中需要简单的语句就可以实现同步,在update函数里面 var sprite = new cc.PhysicsSprite("res/BoxA2.png"); sprite.setBody(body); sprite.setPosition(cc.p(p.x,p.y)); this.addChild(sprite); }, update: function (dt) { var timeStep = 0.03; //timeStep表示上一次过去循环的时间,它还影响到物体本次循环简要移动的距离和旋转角度 //,不建议使用update的dt参数作为timeStep,因为dt时间是上下浮动的 this.space.step(timeStep); }, onExit: function () { } }); var HelloWorldScene = cc.Scene.extend({ onEnter: function () { this._super(); var layer = new HelloWorldLayer(); this.addChild(layer); } }); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |