Cocos合成大西瓜案例-下,今天带你详细了解各组件原理

本文详细介绍了Cocos2D游戏开发中小球预制体的创建,包括添加CircleCollider2D和RigidBody2D组件,调整物理属性,以及创建动态变化的小球。同时,讲解了游戏主脚本、更新分数、死亡判定的实现,特别是碰撞检测和事件处理。文章还强调了在碰撞事件中正确设置监听和避免误操作的重要性。
摘要由CSDN通过智能技术生成

director.loadScene(“scene_start”);

}

image.png

😜小球预制体

要知道每次都要创建一个小球,且右上角有预览,所以我们需要一个预制体,后续通过实例化预制体来实现,并且该预制体初始化的时候能够自动随机不同的小球。

右键创建一个2D的Sprite,添加【CirleCollider2D】和【RigidBody2D】组件,刚体组件默认即可,碰撞组件需要修改下摩擦系数【Friction】和弹性系数【Restitution】,一个【0.2】一个【0.3】吧。【Radius】半径需要注意哦,不同的瓜半径不同,再加上碰撞的时候回来贴合的很合适,这个半径就需要和图片很重合最好,不能大也不能小。

对了我们顺便增加个弹性系数吧,这样有回弹效果就更Q啦。

然后增加个脚本,我们想想改脚本应该有啥功能

  • 1.自动变化不同的球体

  • 2.更改当前球体的Collider半径,这样能实现良好的碰撞检测

  • 3.西瓜的碰撞事件以及碰撞后合并

  • 4.死亡线的检测判定

//获取到精灵

let thisSprite = this.node.getComponent(Sprite);

if (thisSprite != null) {

thisSprite.spriteFrame = this.spriteFrames[index];

} else {

console.log(“changeBall的thisSprite为空”)

}

//动态改变创建的预制体的半径

let PrefabCollider = this.node.getComponent(CircleCollider2D);

if (PrefabCollider != null) {

if (index == 0) {

PrefabCollider.radius = (54 / 2 -1);

}

//……省略部分逻辑

ScriptStatic.CurrentBallRadius=PrefabCollider.radius;

} else {

console.log(“changeBall的PrefabCollider为空”)

}

碰撞的检测

我们使用的是2D的且直接针对Collider注册的监听

TempCollider.on(Contact2DType.BEGIN_CONTACT, this.MethodColliderEnter, this);

MethodColliderEnter<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值