发现chipmunk反物理引擎擎的一个BUG,请问如何切合BOX2D引擎

发现chipmunk物理引擎的一个BUG,请问如何切合BOX2D引擎-_星空见康网
发现chipmunk物理引擎的一个BUG,请问如何切合BOX2D引擎
发现chipmunk物理引擎的一个BUG,请问如何切合BOX2D引擎
chipmunk-physics是C的2D的个人开源的项目。 http://code.google....物理引擎比较:Box2D 对比 Chipmunk - CSDN博客
物理引擎比较:Box2D 对比 Chipmunk
Cocos2d 自带了两套物理引擎:Box2D 和 Chipmunk。那么我们应该选择哪一个呢?
很多情况下,这个选择取决于个人口味。很多游戏开发者对这两个物理引擎的 争论集中于它们所用的编程语言:Box2D 是用 C++写的,而 Chipmunk 用的是 C。
你可能因为 C++接口而更喜欢 Box2D。使用 C++的好处是它可以很好地与同样是 面向对象的 Objective-C 进行整合。而且 Box2D 中的变量和方法名都是用全称 命名的,相比之下,Chipmunk 中很多地方用的是只有一个字母的简写。再者, Box2D 中使用了运算符重载(Operator Overloading),例如,你可以将两个 矢量(vector)直接相加:
b2Vec2 newVec = vec1 + vec2;
有一些功能只有Box2D提供,Chipmunk是没有的。比如,Box2D有针对快速移动 物体(例如子弹)直接穿透物体而不进行碰撞测试的解决方法。
如果你不是很熟悉C++的话,你可能会发现学习C++是要花费挺多时间和精力的。 这样的话,对于熟悉C语言语法或者喜欢更简单一些的物理引擎的你,可以选择 Chipmunk。因为Chipmunk早Box2D几个月整合进cocos2d之中,所以网上关于 Chipmunk的教程和论坛帖子也相对多一些。不过Box2D的教程数量也在赶上来。
不过有个事情要预先给你提个醒:Chipmunk使用了C的structures,它会暴露内 部的域。如果你是在做试验,并且不知道某些域是拿来做什么用的,而且没有 文档解释这些域的话,你就不应该改变它们 – 因为它们只被用于内部。
Chipmunk有一个很受欢迎的Objective-C接口,叫做SpaceManager。你可以利用 SpaceManger很容易地把cocos2d精灵添加到刚体上,添加调试用的绘图等。你 可以通过以下链接下载Chipmunk的SpaceManager: /p/chipmunk-spacemanager
对于功能来说,两个选择都差不多。除非你的游戏依赖于某个物理引擎特有的 功能,否则你可以使用任何一个引擎。特别是如果你对任何一个物理引擎都不 熟悉,那么你可以根据引擎所使用的语言的编程风格来选择自己喜欢的引擎。
转自:http://daniel-555./blog/static//
本文已收录于以下专栏:
相关文章推荐
ZeroYang原创,首发于泰然,转载请著名出处。
在游戏中模拟真实的物理世界是个比较麻烦的,通常都是交给物理引擎来做。比较知名的有Box2D了,它几乎能模拟所有的物理效果,而c...
我们先介绍轻量级的物理引擎——Chipmunk。Chipmunk物理引擎,由Howling Moon Software的Scott Lebcke开发,用纯C编写。Chipmunk的下载地址是http:...
模拟真实的世界是个比较麻烦的事情,通常这种事情都是交给物理引擎来做。但它们使用的过程中有个令人讨厌的地方——参数太多了。为了初始化一个简单的场景要写很多代码。在cocos2d-x 3.0版本中,出现了...
物理的表现力对游戏的影响越来越重要,几乎已经是现在游戏中不可获取的要素之一,如果进入游戏开发的物理世界中,你会发现这是一个深不可测的领域,没个十几年的功力怕是难说出个头道来的,不过再难总要去面对和挑战...
关于物理引擎,在3.0中有了全新的Physics integration
/blog-.html
已有 1046 次阅读
03:29 |系统分类:Cocos2d| 手游研发
在游戏中引入Chipmunk物理引擎
Cocos2d-html5能让我们创造出让人印象深刻的游戏世界,但是它缺乏现实性。虽然我们可以通过复杂的计算来让我们的游戏世界更加逼真,但是我们...
从最热门游戏排行榜和flash游戏网站上,你能看到什么?许多2D游戏都有非常出色的物理学和美术设计。现在我们要学习那些游戏使用了什么物理学以及如何用Box2D制作它们。
除了知道是“什么”,更重要的...
他的最新文章
讲师:何宇健
讲师:董岩
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)cocoscreator物理引擎_中华文本库
在 Cocos Creator 中,我们提供两种形式的属性声明方法: 1、简单声明 当声明的属性...// 当组件添加到节点上时,如果依赖的组件不存在,引擎将会自动将依赖 editor ...
Cocos2d-x的plist文件操作 Cocos2d-x的xml数据操作 Cocos2d-x的json数据操作 七、Box2D物理引擎 Box2d物理引擎:Box2d介绍 Box2d物理引擎:创建世界 Box2d物理引擎...
cocos2d-x支持两个物理引擎Box2d和Chipmunk Box2D是一个用于模拟2D刚体物体的...LabelAtlasCreator 粒子编辑工具 Particle Editing Tools ParticleCreator Particle ...
当 Cocos2D 暂停或者 Cocos2D 继续时重新调度,调度器调用也会失效。 调度器会传递距离上一次调用的间隔时间(单位毫秒)。 间隔时间在物理引擎中十分有 用。 通过...
cocos2d-x的斗地主游戏开发_计算机软件及应用_IT/计算机_专业资料。cocos2d-x...可以选择使用的物理 引擎、是否使用 Cocos Denshion 音乐模块、是否支持 Lua 脚本...
答案Cocos2d-X面试题_面试_求职/职场_实用文档。1.autorelease 和 release 的..._creator/create_project.py 这文件 2,我们再 cd 到 project_creator 文件中,...
cocos2d-x 开发经验 - 精通 C,C++,Objective-C 开发语言 - 精通 lua,js 脚本开发,熟练掌握 Box2D 物理引擎 - 精通 CocosBuilder 使用 - 熟练使用 TiledMap,...
9秒学院总结Cocos2d-X面试题_工作总结/汇报_总结/汇报_实用文档。9 秒学院 ..._creator/create_project.py 这文件 2,我们再 cd 到 project_creator 文件中,...
3 淄博职业学院信息工程系毕业设计 图 2.2 Cocos2D-X 引擎架构 2.3 开发...和功能上的设计,而游戏实现阶段就要依据之前的成果将抽 象化设计转化为物理实现...
物理引擎 ? box2d chump ? 系统架构、类层次 ? cocos2d::CCApplication ? 1、UI系统的框架实现 ? 2、人工智能 ? 3、关卡 cocos2d 基本结构 ? Cocos2d采用...coco2dx 3.0以后最box2d和chipmunk这两个物理引擎进行了封装,使用起来非常的便利。

3.0以后最box2d和chipmunk这两个物理引擎进行了封装,使用起来非常的便利。
官方链接地址:英文版
泰然网:中文教程
offset:重心点
velocity:速度
dadamping:阻尼
rerestitution:弹力
mamaterial:材质
mass:质量
moment:力矩,当他碰到另一个刚体时候 ,会产生一股扭转力,做旋转运动
body:刚体,表示物理世界中的抽象实体,附带有物理属性
shape:刚体的形状,同一个body可以附加多个shape 该shape们不会发生碰撞
joint:关节,可以连接&=2个刚体
1.physicsBody
002.&&&static
PhysicsBody* create();
004.&&&static
PhysicsBody* create(float
006.&&&static
PhysicsBody* create(float
mass, float
008.&&&static
PhysicsBody* createCircle(float
radius, const
PhysicsMaterial& material = PHYSICSBODY_MATERIAL_DEFAULT, const
Point& offset = Point::ZERO);
010.&&&static
PhysicsBody* createBox(const
Size& size, const
PhysicsMaterial& material = PHYSICSBODY_MATERIAL_DEFAULT, const
Point& offset = Point::ZERO);
012.&&&static
PhysicsBody* createPolygon(const
Point* points, int
count, const PhysicsMaterial& material = PHYSICSBODY_MATERIAL_DEFAULT,
const Point& offset = Point::ZERO);
015.&&&static
PhysicsBody* createEdgeSegment(const
Point& a, const
Point& b, const PhysicsMaterial& material = PHYSICSBODY_MATERIAL_DEFAULT,
float border = 1);
017.&&&static
PhysicsBody* createEdgeBox(const
Size& size, const
PhysicsMaterial& material = PHYSICSBODY_MATERIAL_DEFAULT, float
border = 1,
const Point& offset = Point::ZERO);
019.&&&static
PhysicsBody* createEdgePolygon(const
Point* points, int
count, const PhysicsMaterial& material = PHYSICSBODY_MATERIAL_DEFAULT,
float border = 1);
021.&&&static
PhysicsBody* createEdgeChain(const
Point* points, int
count, const PhysicsMaterial& material = PHYSICSBODY_MATERIAL_DEFAULT,
float border = 1);
026.&&&virtual PhysicsShape* addShape(PhysicsShape* shape, bool addMassAndMoment =
028.&&&void
removeShape(PhysicsShape* shape, bool reduceMassAndMoment =
030.&&&void
removeShape(int
tag, bool reduceMassAndMoment = true);
032.&&&void
removeAllShapes(bool reduceMassAndMoment = true);
034.&&&inline
const Vector&PhysicsShape*&& getShapes()
const { return
036.&&&inline PhysicsShape* getFirstShape()
const { return
_shapes.size() &= 1
? _shapes.at(0) : }
038.&&&PhysicsShape* getShape(int
tag) const;
041.&&&virtual
void applyForce(const
Vect& force);
043.&&&virtual
void applyForce(const
Vect& force, const
Point& offset);
045.&&&virtual
void resetForces();
047.&&&virtual
void applyImpulse(const
Vect& impulse);
049.&&&virtual
void applyImpulse(const
Vect& impulse, const
Point& offset);
051.&&&virtual
void applyTorque(float
054.&&&virtual
void setVelocity(const
Vect& velocity);
056.&&&virtual Point getVelocity();
058.&&&virtual
void setAngularVelocity(float
velocity);
060.&&&virtual Point getVelocityAtLocalPoint(const
Point& point);
062.&&&virtual Point getVelocityAtWorldPoint(const
Point& point);
064.&&&virtual
float getAngularVelocity();
066.&&&virtual
void setVelocityLimit(float
068.&&&virtual
float getVelocityLimit();
070.&&&virtual
float getAngularVelocityLimit();
073.&&&void
removeFromWorld();
076.&&&inline PhysicsWorld* getWorld()
const { return
078.&&&inline
const std::vector&PhysicsJoint*&& getJoints()
const { return
081.&&&inline Node* getNode()
const { return
087.&&&&没搞懂
088.&&&void
setCategoryBitmask(int
094.&&&void
setContactTestBitmask(int
100.&&&void
setCollisionBitmask(int
102.&&&inline
int getCategoryBitmask()
const { return
_categoryB }
104.&&&inline
int getContactTestBitmask()
const { return
_contactTestB }
106.&&&inline
int getCollisionBitmask()
const { return
_collisionB }
113.&&&void
setGroup(int
115.&&&inline
int getGroup() const
118.&&&Point getPosition()
120.&&&float
getRotation() const;
123.&&&inline bool isDynamic()
const { return
125.&&&void
setDynamic(bool dynamic);
128.&&&void
setMass(float
130.&&&inline
float getMass() const
138.&&&&增加质量
139.&&&void
addMass(float
144.&&&&设置力矩
145.&&&void
setMoment(float
147.&&&inline
float getMoment(float
moment) const
{ return _ }
155.&&&&增加力矩
156.&&&void
addMoment(float
158.&&&inline
float getLinearDamping()
const { return
_linearD }
164.&&&inline
void setLinearDamping(float
damping) { _linearDamping = }
166.&&&inline
float getAngularDamping()
const { return
_angularD }
172.&&&inline
void setAngularDamping(float
damping) { _angularDamping = }
175.&&&bool isResting()
179.&&&inline bool isEnabled()
const { return
183.&&&void
setEnable(bool enable);
186.&&&inline bool isRotationEnabled()
const { return
_rotationE }
188.&&&void
setRotationEnable(bool enable);
191.&&&inline bool isGravityEnabled()
const { return
_gravityE }
193.&&&void
setGravityEnable(bool enable);
196.&&&inline
int getTag() const
198.&&&inline
void setTag(int
tag) { _tag = }
201.&&&Point world2Local(const
Point& point);
203.&&&Point local2World(const
Point& point);
2.PhysicsShape
02.&&&&inline PhysicsBody* getBody()
const { return
04.&&&&inline Type getType()
const { return
06.&&&&inline
float getArea() const
08.&&&&inline
float getMoment()
const { return
10.&&&&void
setMoment(float
11.&&&&inline
void setTag(int
tag) { _tag = }
12.&&&&inline
int getTag() const
15.&&&&inline
float getMass() const
16.&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
17.&&&&void
setMass(float
18.&&&&inline
float getDensity()
const { return
_material. }
19.&&&&void
setDensity(float
20.&&&&inline
float getRestitution()
const { return
_material. }
21.&&&&void
setRestitution(float
restitution);
22.&&&&inline
float getFriction()
const { return
_material. }
23.&&&&void
setFriction(float
friction);
24.&&&&const
PhysicsMaterial& getMaterial() const
25.&&&&void
setMaterial(const
PhysicsMaterial& material);设置材质
28.&&&&virtual
float calculateDefaultMoment() {
return 0.0f; }
30.&&&&virtual Point getOffset() {
return Point::ZERO; }
32.&&&&virtual Point getCenter() {
return getOffset(); }
34.&&&&bool containsPoint(const
Point& point) const;
37.&&&&static
void recenterPoints(Point* points,
int count, const
Point& center = Point::ZERO);
39.&&&&static
Point getPolyonCenter(const
Point* points, int
46.&&&&inline
void setCategoryBitmask(int
bitmask) { _categoryBitmask = }
47.&&&&inline
int getCategoryBitmask()
const { return
_categoryB }
53.&&&&inline
void setContactTestBitmask(int
bitmask) { _contactTestBitmask = }
54.&&&&inline
int getContactTestBitmask()
const { return
_contactTestB }
60.&&&&inline
void setCollisionBitmask(int
bitmask) { _collisionBitmask = }
61.&&&&inline
int getCollisionBitmask()
const { return
_collisionB }
63.&&&&void
setGroup(int
64.&&&&inline
int getGroup() { return
Copyright (C)2017
All rights reserved.服务人文书店
当前位置: &
Cocos2D应用开发实践指南:利用Cocos2D、Box2D和Chipmunk开发iOS
滚动鼠标滚轴,图片即可轻松放大、缩小
Cocos2D应用开发实践指南:利用Cocos2D、Box2D和Chipmunk开发iOS(图1)
电&&&&&&话:
开&&&&&&本:16开
页&&&&&&数:492页
字&&&&&&数:
I&&S&&B&&N:6
售&&&&&&价:86.69元
Copyright(C)
孔夫子旧书网
京ICP证041501号
海淀分局备案编号}

我要回帖

更多关于 chipmunk物理引擎 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信