
Box2D物理引擎
文章平均质量分 81
yang3wei
软件专业,2011年起专注手游开发,参与项目:益智类:NutsPhysics、OhMyFish!,战争策略类:全民君王、红警崛起
展开
-
App Store Review Guidelines 送審前十項常犯必檢查項目表
转载自:http://tw.polydice.com/2011/12/23/app-store-review-guidelines/一個 iOS App 在送審過程會經歷的階段有: Waiting for uploadUpload receivedWaiting for reviewIn reviewReady for sale. 這是一個順利的轉換转载 2012-08-31 08:56:09 · 1802 阅读 · 0 评论 -
box2d 学习笔记
转载自:http://blog.sina.com.cn/s/blog_4f52c70d0100sj49.html几个对象:世界--b2World:创建世界,同时声明重力。在层的(id)init 函数中。b2World* myWorld = new b2World(gravity, doSleep);销毁世界,在层的(void)dealloc 函数中。delete myWor转载 2012-04-24 15:28:45 · 1114 阅读 · 0 评论 -
b2RopeJoint连接的物体摆动幅度夸张的解决办法——设置线性阻尼
/** * added by Bruce Yang on 2012.03.09.15.41~ * 创建乌鸦~ */-(b2Body*) createCrow:(BYObject*)object { b2Vec2 po = object.position; b2BodyDef bodyDef; bodyDef.type = b2_dynamicBody;原创 2012-03-20 18:43:12 · 2047 阅读 · 1 评论 -
box2d判断物体脱离地图边界
之前:/** 判断 BYShape 对象是否越界,越界即将之销毁(可用来判定游戏失败)~ */+(BOOL) isPositionOutOfBounds:(CGPoint)p { CGSize mapSize = [BYSinglegetInstance].mapSize;BOOL flag = NO; if(p.x width *PTM_RATIO / 2.0原创 2012-03-20 18:25:11 · 1471 阅读 · 0 评论 -
FML!!真是搓了,难怪好朋友说我想出来的都是写蛋疼的玩意儿,唉~
这是我之前的写法:-(void) tick: (ccTime) dt{ //It is recommended that a fixed time step is used with Box2D for stability //of the simulation, however, we are using a variable time step here. //You need原创 2011-08-11 12:23:54 · 1029 阅读 · 0 评论 -
FLT_EPSILON为什么等于1.192093e-007
转载自:http://topic.youkuaiyun.com/u/20090912/22/1742b219-0411-4577-a68d-bf89148e3df7.htmlFor EPSILON, you can use the constants FLT_EPSILON, which is defined for float as 1.192092896e-07F, or DBL_EPSILON,转载 2011-10-06 00:09:13 · 7691 阅读 · 1 评论 -
Box2D切割复杂多边形
从切割简单的多边形到切割复杂的多边形,一路过来,遇到了很多很多的问题总算是大体得到解决了,相当的happy呀,终于可以松口气了要知道,如果这个算法无法完成,我筹划的这个游戏也就没什么想法了,间接等于我20多天的努力付诸东流一开始是切割复杂多变性的功能想了蛮久才搞出来,还不得以用了goto跳转标签记得以前看谭浩强c的时候,就特别不建议使用goto语句,容易让阅读代码的人甚至是自己思维原创 2011-10-09 01:23:56 · 3337 阅读 · 0 评论 -
Gravity Tutorial for iPhone Part 2
转载自:http://www.bit-101.com/blog/?p=1793See this note.In part 1, we created a Ball class which contained position, velocity, radius, and a color. And we set up a timer to update the ball’s转载 2011-10-24 01:04:34 · 747 阅读 · 0 评论 -
box2d 粗略的模拟水浮力
准备工作,首先修改 box2d 的 b2Body 类,增加一个public 修饰的 bool 类型标识变量 m_isInWater,用于标识物体当前是否在水中。然后,切到 box2d 的 b2World 类,在 CreateBody 方法的尾部添加一行初始化标识变量的代码:b2Body* b2World::CreateBody(const b2BodyDef* def){ b原创 2012-04-13 15:44:32 · 4769 阅读 · 5 评论 -
记录一个粗心所导致的bug
前言:前天给游戏里面增加了一个 sensor 类型的fixture,这个 fixture 主要用来处理碰撞,说的具体一点,用来处理浮力。不知道别人是怎么做浮力的,我之前也没什么经验,又一次在和伙计讨论爆炸效果的时候,伙计对 box2d sensor 的代码稍作改动,粗略的实现了爆炸的效果。当时我觉得这个效果应该会有用到的地方,便留下了一点儿印象。后来做水浮力的时候,我想到水原创 2012-04-15 11:31:37 · 849 阅读 · 0 评论 -
我的第一个游戏FoodieThebug完成之后的心得体会
转载自:http://www.cnblogs.com/zilongshanren/archive/2011/12/17/2290925.html 距离上次发博客已经有两个月的时间过去了,期间好几次想抽出时间来写,最后却总是因为某些原因没动手。主要原因是最近确实太忙了,一边要做兼职游戏开发(full版,lite版,christmas版),一边还在给导师打工,做一个mes系统。每天从转载 2012-07-14 15:09:24 · 1385 阅读 · 0 评论 -
eclipse cdt 搭建 c/c++ 开发环境的总结
一口气转了很多篇文章,本来最近事情很忙,是准备将在 eclipse 中搭建 c/C++ 开发环境的事情放在后面的,无奈还是没忍住,今天一不小心就把这事儿给办了~eclipse 是如此之优秀,我简直深陷其中无法自拔,现在,java,actionScript,c/C++,python 这些编程语言我都能够在eclipse中进行开发了。现在的心情,毫无疑问是非常之舒畅的。至于 o原创 2012-06-01 19:36:56 · 5192 阅读 · 0 评论 -
box2d b2DestructionListener注意事项
b2DesctructionListener只会对隐式销毁的 fixture 和 b2Joint 做响应也就是说:如果你在销毁一个 body 的时后,body上面的 fixture 和 joint 你未曾事先销毁掉,那么,这些 fixture 和 joint 就会在 b2DesctructionListener 的回调方法里面得以体现;如果一个body包含了多个 fixture,你原创 2012-04-22 20:04:35 · 1437 阅读 · 0 评论 -
Box2D里的AABB
转载自:http://tech.byreach.com/node/2442AABB的全称是axis aligned bounding box,大致概念首先是一个box,也就是一个框框,这个框框的4边与坐标轴平行,也就是一个正方形或者长方形区域。转载 2012-04-22 16:03:55 · 3001 阅读 · 6 评论 -
Box2D Get Bounding Box of a Body
转载自:http://gamedev.stackexchange.com/questions/1366/box2d-get-bounding-box-of-a-body问题:In Box2D, I was curious if it's possible to get a bounding box of a body already created in the world.转载 2012-04-22 15:52:55 · 1460 阅读 · 0 评论 -
Box2D v2.1.0用户手册翻译 - 第04章 碰撞模块(Collision Module)
转载自:http://blog.youkuaiyun.com/complex_ok/article/details/6716676第04章 碰撞模块(Collision Module)4.1 关于碰撞模块包含了形状, 和操作形状的函数。该模块还包含了动态树(dynamic tree)和broad-phase, 用于加快大型系统的碰撞处理速度。转载 2012-04-19 04:29:51 · 949 阅读 · 0 评论 -
box2d 新建复合多边形物体
方法:-(vector*) parsePolyArrStr:(NSString*)polyArrStr { if(polyArrStr == nil || [polyArrStr isEqualToString:@""]) { NSLog(@"shapeArrStr: nil or \"\""); return nil; } vector原创 2012-04-14 14:23:33 · 1452 阅读 · 0 评论 -
Box2D 内存管理 - 小型对象分配器(SOA)的实现
转载自:http://blog.youkuaiyun.com/ring0hx/article/details/6978437Box2D用C++编写(当然还有其它语言的移植版),但是为了快速有效的使用内存,创建对象的时候它并没有使用C++标准的new 和delete关键字,而是自己实现了一个被称作小型对象分配器(smaller object allocator简称SOA)的类b2BlockAlloc转载 2012-03-09 09:49:36 · 632 阅读 · 0 评论 -
切割Box2D对象(二)
转载自:http://www.9ria.com/news/2011/0718/23343.html这是用Box2D实现切割效果的第二部分了。在第一部分教程中,我们找到了切割的切入点和切出点,现在该实现真正的切割了。切割对象,我们只需要三个步骤,马上开始吧!首先找到激光的中心点在这一步中,我们需要找到激光在对象内部的中心点。换句话说,如果我们认为切入点和起初点之间是激光在对象内部的部转载 2011-09-15 13:09:27 · 1008 阅读 · 0 评论 -
Verlet rope
转载自:http://www.cocos2d-iphone.org/archives/1112IntroductionIn this brief article we’ll be taking a look at an efficient way of creating ropes in our cocos2d games that use box2d, starting转载 2012-01-14 12:13:09 · 1129 阅读 · 0 评论 -
最近的一些总结
1。解决了box2d ContactListener相关的一个bug(实际上算不上解决,只能说是用一些手段逃避了一个bug)我想做一个一个物体碰撞另一个物体后就消失的功能,我在要销毁的物体上调用DestroyBody方法,结果竟然引发 b2World m_bodyList 成员的紊乱!m_bodyList是一个双链表的结构,双链表插入删除操作都比线性表要高效,不难理解erin的良苦用心原创 2012-01-22 01:58:43 · 902 阅读 · 0 评论 -
objective-c创建box2d世界以及地面(或者 edge)
// 值得注意的是都要除以一个 PTM_RATIO 才能得到精确定制的地面尺寸~- (void) createGround { // 边界设置如果采用的是地面盒的话,groudBody 的位置要居中 // 如果采用的是 Edge 的话,groundBody 的位置必须为左下角即为 (0.0f, 0.0f) 这个点~ // *************************** 第一种选原创 2011-08-13 17:29:35 · 1750 阅读 · 0 评论 -
PhysicsEditor with cocos2d and box2d usecase
转载自:http://www.physicseditor.de/cocos2d-box2d/Tutorial: cocos2d + box2dPhysicsEditor with cocos2d and box2dThis is a short tutorial how to use PhysicsEditor together with cocos2d a转载 2012-01-22 03:05:58 · 882 阅读 · 0 评论 -
verlet-rope-latest 的扩展—— BYRope
对 verlet-rope-latest 做了一下扩展:1。可以添加绳子端点的sprite2。以 b2RopeJoint 对绳联体做最大距离限制3。可以在body的fixture上面任取一点作为连接点(原版仅仅支持连接到物体的中心点),这个也是推动我做修改的初衷~废话不多说:上效果图:上相关代码://// BYRope.h/原创 2012-02-27 01:32:01 · 2105 阅读 · 3 评论 -
box2d再遇新问题(其实是cocos2d的问题,+_+)
在项目进行的路程上,总会遇到各种各样的问题,而解决这些问题所要花费的时间,对于我这种连门都还只跨进了半步的小小菜鸟,真的是要看人品了~想当初夸下海口说一个月就把目前策划的这款游戏搞出来,看来希望不怎么大了现实往往是如此的残酷,吼一声,老天你能否少给我出一些难题?!发泄归发泄,不过问题总算是解决了,还是很可喜可贺的!!今天遇到的这个问题,是在cocos2d切换场景的时候出现的,原创 2011-09-28 00:33:55 · 2054 阅读 · 0 评论 -
愁得我几天饭吃不香觉睡不好的问题终于解决了!!!狂喜!!!
主题:遍历 compound b2Body FixtureList 的正确写法必须注意的一点是 b2Body 的成员变量 m_fixtureList是链表而非数组!!!数组可以以下标[0]的形式来操作,STL vector可以用at(0)以及Iterator的方式来操作,但是Box2D m_fixtureList链表的话,还是乖乖地用作者所推荐的写法!!!主要会原创 2011-10-04 03:31:52 · 1969 阅读 · 0 评论 -
Gravity Tutorial for iPhone, Part 5
转载自:http://www.bit-101.com/blog/?p=1824For the final installment in this series, we’ll add accelerometer support to the ball, allowing you to tilt the device to change the direction of “down”. N转载 2011-10-24 01:34:38 · 667 阅读 · 0 评论 -
在mac应用中使用GDataXML,添加Box2D到Mac应用
要用oc写一个mac应用,出现了一些问题:一、按照上次在ios游戏中配置那样弄了下GDataXML,发现不行,上次的理解还是有一些偏差;二、由于要使用到b2Vec2数据类型,因此要将Box2D的源码组织到项目中去,在这里又出现了问题。下面是几个解决了我疑惑的帖子:libxml/tree.h no such file or directoryhttp://st转载 2011-10-26 18:49:39 · 988 阅读 · 0 评论 -
box2d的角色邹形 getworldpoint getlocalpoint
转载自:http://gym202.blog.163.com/blog/static/95543274201011765141871/demo : http://www.emanueleferonato.com/downloads/box2dplat3.swf转载 2011-09-25 16:10:24 · 1970 阅读 · 0 评论 -
APE物理引擎与Box2D物理引擎对比(初学)
转载自:http://www.cnblogs.com/jann/archive/2009/08/21/1551741.html初学Box2D ,有几个心得1.贴图。 在 APE 中,不给粒子贴图,会有默认的白色粒子。如果要贴图,只要一个setDisp转载 2011-09-25 10:39:22 · 851 阅读 · 0 评论 -
渲染的一些代码
/** * draw will be called fps */-(void) draw {glDisable(GL_TEXTURE_2D);glDisableClientState(GL_TEXTURE_COORD_ARRAY); [_renderdrawOpenGLBackground]; glDisableClientState(GL_COLOR_ARR原创 2012-02-22 10:08:30 · 919 阅读 · 0 评论 -
'cmath' file not found
box2d 的 b2Vec2 类型和 cocos2d 的 CGPoint,CGSize, CGRect,我想拿出来自己用,于是新建了一个 Terminal 工程。因为 CGPoint 和 苹果自带的 CoreGraphics里面自带的~而 box2d 里面的 b2Vec2 类型我也经常用到,包含 b2Vec2 类型定义的头文件 b2Math.h 里面同时也包含了不少 有用的,线程的转载 2012-02-28 21:36:37 · 4383 阅读 · 0 评论 -
iphone上如何用box2d实现爆炸效果?
转载自:http://www.oasku.com/?question/view/78.htmliphone上如何用box2d实现爆炸效果?1.先取得爆炸这点point,然后根据这个点构建一个矩形,保证此点为矩形的中心。(矩形用来模拟爆炸的影响范围)2.遍历所以的body,如果body在中心点在矩形之内,则:3.根据爆炸点和body的中心点求出一个角度。4.根据两转载 2012-02-01 11:13:54 · 1085 阅读 · 0 评论 -
对付EXC_BAD_ACCESS的再一次胜利——暴力调试法
一波未平,一波又起,这不,下午继续开发进度的时候,又遇到了新的问题:// ************************************************************************************一。CCSprite 明明设置了rotation属性之后才加入CCNode,但是就时开不出来有任何的角度偏转!!!找了个把小时,才惊奇的发现:原来原创 2011-08-13 21:35:07 · 5377 阅读 · 0 评论 -
cocos2d游戏开发,常用工具集合
转载自:http://www.ityran.com/thread-481-1-1.htmlcocos2d游戏开发,常用工具集合 位图字体工具Bitmap Font ToolsBMFont (Windows)FonteditorGlyph DesignerHieroLabelAtlasCreator粒子编辑工具Particle Ed转载 2012-01-21 08:53:16 · 909 阅读 · 0 评论 -
box2d 遍历世界中body列表的2种方法
第1种方法,在对 body 列表有删除操作的时候,采用 while 的遍历方式比较方便(详见box2d白皮书)~ /** Iterate over the bodies in the physics world */ b2Body *node = _world->GetBodyList(); while(node) {原创 2012-02-21 17:14:42 · 1985 阅读 · 0 评论 -
将cocos2d集成的box2d类库由2.1.2升级为2.2.0版本
将游戏烧进机器里面以后很兴奋,昨天晚上把玩了一下,结果发现一个非常之令人不解的bug:某些情况下,切割生成的形状掉落到静态物体上以后,就像被粘住了一样,不能在模拟运动而且,这块形状在和其他形状发生碰撞的时候出现严重失真的情况(重叠了)当第二块形状掉落下来的时候,没有发生碰撞:接下来就蛋疼了,在网上找呀找,凡是跟box2d字样沾上边的,关键字里面带了中文的,基本是都是原创 2011-10-13 14:36:38 · 1191 阅读 · 0 评论 -
一行代码省却十数行代码
想做一个乌鸦飞的效果,却发现一群乌鸦碰在一起老是会出现头上脚下的情况,感觉很是不好于是想到了一个办法:乌鸦的body 包含两个 fixture,一个在上,一个在下,上面的 fixture 密度设置的远远小于下面的fixture的密度,这样的话,脚重头轻,便不会再出现头下脚上的情况了。可事实总是让人无比蛋疼,即使将下面的密度设置为了上面密度的一百倍,问题还是没有得到解决~原创 2012-02-01 06:27:09 · 644 阅读 · 0 评论 -
解决在场景中销毁无用对象的问题,详见tick方法
比较完美版本的GameScene,借助于userData,可以比较彻底的将超出界限外的BYShape 对象回收掉参见前面写过的一篇文章。。。。//// GameScene.mm// GameFrameWork//// Created by Eric Zhu on 6/12/11.// Copyright 2011 Home. All rights reserved.//原创 2011-08-13 23:03:27 · 1457 阅读 · 0 评论 -
用Java写的一个 Box2D b2PolygonShape描点工具
为满足项目需求,我用java写了一个生成Box2D b2PolygonShape多边形顶点的工具。也是一步一步完成的,首先是为1个不规则的sprite图片生成多边形shape轮廓,后来发现如果用Box2D里面的compound概念的话可以生成比较完美的不规则图片 shape 轮廓,因此,工具升级到1.1,从此支持对不规则的sprite图片进行描点1.1版完成的时候逛了逛子龙山人的博客,原创 2011-08-27 18:38:35 · 2546 阅读 · 2 评论