Cocos2dx之Box2D详解 设置物体回复力

DionysosLai([email protected]) 2014/7/29

在box2d中,物体有三大属性,分别是:

1.  Density,单位体积的质量(即密度), 意义就是一个对象的密度越大,对象就拥有更多的质量,本身就会越难以移动。

2.  Friction,摩擦力,范围在0-1.0。 0意味着没有摩擦,1代表最大摩擦,几乎移不动的摩擦。

3.  Restitution,回复力,范围在0到1.0。0意味着对象碰撞之后不会反弹,1意味着是完全弹性碰撞,会以同样的速度反弹。

密度和摩擦力比较容易理解,因为本身这两个属性不会跟其他物体有太多关联,而回复力则关系到物体之间的相互联系了,这是由于力的作用是相互的。同时因为力的作用是相互原理,作用力即等于反作用力。另一方面,根据测试结果可以知道,两个物体相碰,如果A物体的回复力为a,B物体的回复力为b。若二者的回复力不一样,则作用在二者身上的回复力为max(a, b),即使双方中有一方的回复力为0,这个结论依然成立。

根据上文,我们就可以设置一个弹性钢球碰到左右面墙面的回弹力不一样(蛋疼的设计,就是因为策划要求,我才发现有上文的结论),只要将钢球的回复力设置为0,左右墙的回复力设置不一样即可。同样,根据这个设计,我们可以设计一种吸附墙,将钢球吸附在墙上(这里可能需要一个传感器设置,就是在墙的范围内,将重力消除掉)。

哈哈,今天就是这样。好久没写博客,真是:~)。最近在做绘本游戏,有一腔的话要说啊。对于游戏,设计真的非常重要啊!!!

Cocos2dx之Box2D详解 设置物体回复力

时间: 2024-10-14 13:54:55

Cocos2dx之Box2D详解 设置物体回复力的相关文章

Cocos2d-x滚动列表详解(CCScrollView的使用)

今天要写一个滚动列表功能,类似下面这样.(图片资源都是自己从天天酷跑里面抠的,仅用于学习方便) 首先,这样一个列表就和iOS里面的UITableView没什么两样,当然,Android中肯定也存在类似的控件. 在cocos2d-x引擎中参照ios中的UITableView实现了一个叫做CCTableView的类,用于创建列表,对于熟悉ios程序设计的人来说,这个内容应该是很好理解的. 下面就介绍下CCTableView. 首先,mark几个比较好的博文. Cocos2d-x CCTableVie

cocos2dx 启动过程详解一:渲染

今天来看一下cocos2d-x的整体启动过程: cocos2d-x 在各个平台的实现代码是一样的,只要针对不同平台做相应的配置就可以了. 一.启动前奏 现在来看一下在ios平台下的相关结构: 打开源代码自带工程,你会看到一个main文件,这里main里面有一个main函数,这是程序的入口函数.在这里他回加载AppController,进入这个类,这里有ios平台华景初始化代码,但是最先执行的如下: // cocos2d application instance static AppDelegat

cocos2dx 启动过程详解二:内存管理和回调

在上一篇的第二部分中,我们有一句代码待解释的: // Draw the Scene void CCDirector::drawScene(void) { -- //tick before glClear: issue #533 if (! m_bPaused) //暂停 { m_pScheduler->update(m_fDeltaTime);   //待会会解释这里的内容 } -- } 这里是一个update函数,经常会写像this->schedule(schedule_selector(X

NavigationBar 详解 设置

1.设置标题: self.navigationItem.title =@"系统标题"; 运行: 2.自定义标题,设置titleView: 如果我们想改变标题的颜色和字体,就需要自己定义一个UILabel,自己设置好这个Label的内容,可以设置自己想要的字体.大小和颜色等.然后执行self.navigationItem.titleView = myLabel;就可以看到想要的效果. 代码实现: //自定义标题 UILabel *titleLable = [[UILabel alloc]

cocos2d-x 创建工程详解

我们的编写的第一个程序一般习惯上都命名为HelloWorld,从它开始再学习其他的内容.下面介绍的第一个Cocos2d-x游戏我们也命名为HelloWorld. 创建工程 在Cocos2d-x早期版本中,创建工程是通过安装在Visual Studio中的工程模板而创建的,而目前创建工程Cocos2d-x是通过Cocos2d-x提供的命令工具cocos实现的,cocos位于<Cocos2d-x安装目录>\tools\cocos2d-console\bin下.我们能够通过DOS等终端进入bin目录

微信小程序上拉加载:onReachBottom详解+设置触发距离

前端经常遇到上拉加载更多的需求,一般还涉及到翻页.小程序里已经给了下拉到底的触发方法onReachBottom(),这里记录下怎样使用这个方法实现下拉加载更多,有需要的直接看代码,有详细注释: 1.首先在data里定义一下返回数据data,和翻页的页数pagenum data: { datalist: [], //.wxml文件需要绑定的列表,我这里用的数据类型是数组 pagenum: 1, //初始页默认值为1 }, 2.具体的请求过程,包含新老数据的数组合并,实现数据实时更新 getdata

Cocos2d之Node类详解之ZOrder详解

一.声明 笔者以cocos2d框架的cocos2d-x-3.3rc0版本源码做分析.本文属于笔者原创,允许转载和分享,但请注明文章出处. 二.简介 ZOrder ZOrder顾名思义就是节点(Node对象)在Z轴上的排序,这样一来ZOrder越小就越优先显示.每个节点(Node对象)可以持有多个子节点,组成节点树(关于节点树的介绍查看<Cocos2d之Node类详解之节点树>一文).ZOder表示了节点树中每个子节点显示的优先级.值得注意的是,节点树中子节点的ZOder可能会一样,这种情况下父

UITextView的使用详解

//初始化并定义大小 UITextView *textview = [[UITextView alloc] initWithFrame:CGRectMake(20, 10, 280, 30)]; textview.backgroundColor=[UIColor whiteColor]; //背景色 textview.scrollEnabled = NO;    //当文字超过视图的边框时是否允许滑动,默认为“YES” textview.editable = YES;        //是否允许

Activity界面绘制过程详解

Activity界面绘制过程详解 设置界面首先就是Activity.setContentView()方法:我们先看一下他的源码: /** * Set the activity content from a layout resource. The resource will be * inflated, adding all top-level views to the activity. * * @param layoutResID Resource ID to be inflated. *