CreatorPrimer(17)|物理小游戏(物理组件)

Demo演示视频:

Demo演示,点击下面连接打开

视频地址:https://v.qq.com/x/page/p0713nsrnr1.html
本视频的工程已经上传github,CreatroPrimer仓库physics分支,传送地址:https://github.com/ShawnZhang2015/CreatorPrimer/tree/physics

紧接上篇我们的物理投篮游戏,这次介绍一下Cocosc Creator的物理引擎相关组件:刚体物理碰撞检测

1. 刚体组件

我们先看看游戏中的笑脸小球的刚体组件属性,请看下图:

Ball动态刚体

RigidBody就是Cocos Creator提供的刚体组件,将组件挂载到一个节点上,节点即具有物理特性,运行起来会随着地心引力向下坠落(需要开启物理效果)。

有些刚体是不需要动的,比如我们四周的围墙,只需要将刚体组件的Type属性设置为static即可,请看下图:

静态刚体

设置好静态刚体,运行游戏会发现小球下坠,但会穿过围墙,掉入无尽深渊去了。

2. 物理碰撞组件

刚体组件只是给节点赋予了重力、速度、阻力等能力,接下来我们还需要为节点设置物理外形,这需要为节点挂载一个碰撞组件,看下图:

为Ball添加圆形碰撞组件

Cocos Creator提供了四种物理碰撞组件分别是:

  1. 矩形碰撞
  2. 链条碰撞
  3. 圆形碰撞
  4. 多边形碰撞

我们这里为Ball节点添加圆形碰撞组件,看一下组件属性:

圆形碰撞.png

简单说明一下组件属性:

  1. Editing:在场景编辑器中开启刚体外形编辑功能
  2. Tag: 为碰撞组件设置一个ID用于对象识别
  3. Density:密度
  4. Sensor:选中不会产生物理效果,但会响应物理碰撞(篮球框就利用了这个属性)
  5. Friction:摩擦系数
  6. Restitution:弹性系数,要让球掉在地上能弹跳值要大于0,如果设置为1(最大值)球可能会在原地无限弹跳
  7. Offset:刚体与节点的偏移,尽量让两者重合
  8. Radius:刚体半径

其它物理碰撞组件,只是最后一个外型属性不同,其它都一样,我们看看四周围墙的矩形碰撞组件属性:

矩形刚体

Box盒形碰撞组件的刚体大小由Size属性决定,外观大小由节点Size属性决定。为刚体设置好了碰撞组件,你就能看到小球在刚体包围盒里快乐弹跳了,接下来我们来监听碰撞事件。

3. 监听碰撞事件

请认真思考一下,碰撞事件的监听放在那个节点最好?我们以需求为向导,当球进入篮框更新得分,是将碰撞监听安装在篮球上还是篮框上?再进一步,篮框分左右两个,得分分别显示得分。如果将碰撞安装在篮球上,那篮球就需要判断是碰到了左边篮框,还是碰到了右边篮,可以利用碰撞组件的Tag属性来区别。如果将碰撞监听安装在左右篮框上,各自记录碰撞次数就行了,是不是更简单?请看下图,我们添加一个自定义的碰撞组件:

篮球框刚体

请仔细看上图中的组件属性配置,篮框是空心的,球可以穿透,因此需要选择中碰撞组件的Sensor属性。同时添加一个我们自定义的PhysicsColliderNotification组件用于监听物理碰撞,当发生碰撞后会发出一个通知,通知是可以自定义的,也就是一个字符串:score-left,意思是左边得分。

同时我们在左上角记得标签,上去监听score-left这个消息,当这个事件发生后,更新标签数值,可以通过组件属性配置:

记分标签

每当球碰到绿色的碰撞检测点,检查节点上的组件会发出一个“score-left”事件,同时左上角数字标签在监听这个事件名,去更新标签上的数字+1(就是step的值)实现一个记分的功能。

中间的生命值标签也是用同样的机制实现,只不过是球碰撞到左右两边红色围栏,发出别一个事件,生命值标签的step为-1从表示出的是减分的效果。

4. 小结

本篇教程介绍了Cocos Creator物理引擎中的刚体和碰撞组件的常用属性,同时分析了我们这个篮球小游戏的碰撞检测策略,将碰撞检查安装在篮框和两边红色围栏上。通过两个通用的组件将投篮记分和碰触边框减分实现了,是不是很简单呢?之前Shawn保证过,前两篇不讲代码,只讲组件使用,但下一次我们要进入组件代码的学习,核心代码不到50行,非常简单,敬请期待!


如果觉得公众号上的文章对你或你的朋友有所帮助,请记得分享给大家,愿我们一起成长!

奎特尔星球
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,530评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 86,403评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,120评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,770评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,758评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,649评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,021评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,675评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,931评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,659评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,751评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,410评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,004评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,969评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,042评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,493评论 2 343

推荐阅读更多精彩内容