Cocos合成大西瓜案例-下

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】方法是我们的逻辑处理,里面包含三个参数【selfCollider: Collider2D, otherCollider: Collider2D, contact: IPhysics2DContact | null】,官方文档有介绍,在这小空就不自嗨啦。逻辑详情请参考源码,注释很详细。

注意哦:

要想碰撞事件生效,必须在物体的刚体组件中打开监听【EnabledContactListener】, 离谱。

在碰撞事件中进行销毁或者更新某个组件使用【setTimeout】来实现下一帧修改,因为当前帧修改会报异常的。

碰撞检测里面的逻辑函数我们用到了标签【TAG】,并且利用【TAG】做了某些操作的话,所以就要特别注意了,在场景中有些节点的【TAG】默认就是0,很容易造成误操作对象。所以我们修改场景中【背景_左墙】和【背景_右墙】以及【背景_地面】的碰撞组件【TAG】为100。

接着我们的主脚本就用到他了。

😜游戏主脚本

该脚本挂载在了背景黄图上,在开始和结束我们需要注册和解除注册点击事件。点击事件里面逻辑:

  • 1.初始化预制体

  • 2.设置位置

  • 3.随机生成球体

  • 4.右上角预览生成

具体详情可看源码中的【onClickStart】方法

注意:

UI上的脚本要想响应点击事件,必须挂载的物体上有【UITransform】,且在Canvas下

😜更新分数

【分数】节点上挂载【ScriptScore】脚本,脚本内直接开一个每秒更新一次的定时,取之前保存的分数变量即可。

但这并不满足我们,我们的显示一定要优雅,没错,优雅。

image.png

所以我们就需要用到艺术数字,这个开头我们的启动页面最大分数是先沟通的技术。

找到我们的【number.fnt】文件赋值给【Label】的【Font】,然后在代码中增加

this.schedule(()=> {

//设置分数艺术字

let LabelScore = this.node.getComponent(Label);

if (LabelScore != null) {

LabelScore.string = ScriptStatic.CurrentScore + “”.toString();

} else {

console.log(“获取文本节点为空”)

}

}, 1);

😜死亡判定

当触碰到顶部线条的时候触发。所以UI要有碰撞检测,并且需要根据事件回调进行响应处理。

我们添加【RigidBody2D】和【BoxCollider2D】,注意:要想系统能调用回调,需要激活【EnabledContactListener】,之后在脚本的【onLoad】中注册事件。代码如下:

protected onLoad() {

let TempCollider = this.node.getComponent(BoxCollider2D);

if (TempCollider != null) {

console.log(“死亡线注册了碰撞事件”)

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

} else {

console.log(“死亡线Collider为空”)

}

}

start() {

// [3]

}

/**

  • 注意了 要想以上来不响应需要RigiBody2D的 Type 为静态类型 不能是默认的

  • @param selfCollider

  • @param otherCollider

  • @param contact

  • @constructor

  • @private

*/

private MethodColliderEnterDeath(selfCollider: Collider2D, otherCollider: Collider2D, contact: IPhysics2DContact | null) {

console.log(“执行了死亡线的碰撞”)

//判断是否为最大值保存分数

let MaxScore = localStorage.getItem(ScriptStatic.MaxScore);

if (MaxScore != null) {

//利用Number() 将字符串转为 number 可以对比大小

if (Number(MaxScore) < ScriptStatic.CurrentScore) {

localStorage.setItem(ScriptStatic.MaxScore, ScriptStatic.CurrentScore + “”);

}

}

//展示死亡界面

if (this.NodeDeath != null) {

this.NodeDeath.setPosition(0, 0, 0);

} else {

console.log(“死亡界面为空”)

}

//禁止背景再有点击响应

if (this.NodeBg != null) {

let TempScript = this.NodeBg.getComponent(ScriptGame);

if (TempScript != null) {

console.log(“取消了点击事件”);

// this.NodeBg.off(Node.EventType.TOUCH_START, TempScript.onClickStart, this);

TempScript.IsDeath=false;

} else {

console.log(“获取的脚本为空”)

}

} else {

console.log(“死亡界面为空”)

}

}

至此,我们的整个开发流程结束。

下一篇文章小空分享在不同平台【微信QQ,字节抖音系,,百度等】发布成品并上架。

下下一篇小空带你利用广告系统增强游戏玩法,并且用广告来获取收益。

👉其他


📢作者:小空和小芝中的小空

📢转载说明-务必注明来源:https://zhima.blog.csdn.net/

📢欢迎点赞👍收藏🌟留言📝

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

img

img

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:Android)

最后

总而言之,Android开发行业变化太快,作为技术人员就要保持终生学习的态度,让学习力成为核心竞争力,所谓“活到老学到老”只有不断的学习,不断的提升自己,才能跟紧行业的步伐,才能不被时代所淘汰。

在这里我分享一份自己收录整理上述技术体系图相关的几十套腾讯、头条、阿里、美团等公司20年的面试题,把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,这里以图片的形式给大家展示一部分。

还有高级架构技术进阶脑图、Android开发面试专题资料,高级进阶架构资料 帮助大家学习提升进阶,也节省大家在网上搜索资料的时间来学习,也可以分享给身边好友一起学习。

《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门即可获取!

面试题,把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,这里以图片的形式给大家展示一部分。

[外链图片转存中…(img-zTFEI9nm-1712255483008)]

[外链图片转存中…(img-yn3qaxLi-1712255483008)]

[外链图片转存中…(img-HdtR61sA-1712255483008)]

还有高级架构技术进阶脑图、Android开发面试专题资料,高级进阶架构资料 帮助大家学习提升进阶,也节省大家在网上搜索资料的时间来学习,也可以分享给身边好友一起学习。

《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门即可获取!
  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: Cocos Creator是一种强大的游戏开发引擎,可以用它来制作各种各样的游戏。合成大西瓜是近期非常受欢迎的一款小游戏,让我们来看一下如何使用Cocos Creator来制作这个游戏。 首先,创建一个新的游戏项目,在项目中添加一个场景。我们需要在场景中创建一个背景,并设置适当的大小和位置。 接下来,我们需要添加合成大西瓜游戏的各个元素。我们可以使用Cocos Creator提供的2D节点系统来实现这一点。添加一个节点作为刀子,并设置初始位置和大小。然后,我们可以添加一些西瓜和其他水果的节点,设置它们的位置和大小,并在刀子碰到时进行相应的反应。 为了实现切水果的效果,我们可以使用Cocos Creator物理引擎和碰撞检测功能。将刀子和水果节点都设置为碰撞体,并设置适当的形状和大小。当刀子和水果节点发生碰撞时,可以通过编写代码来分离碰撞的节点,增加得分,播放音效等。 游戏正常运行后,我们可以添加一些特效和动画来增加游戏的乐趣和视觉效果。例如,可以在切割时添加粒子效果,或者在西瓜分离时添加爆炸动画。 最后,我们可以添加一些游戏逻辑和界面元素。例如,可以添加计分板来跟踪玩家的得分,还可以添加倒计时的元素来限制游戏的时间。 通过使用Cocos Creator,我们可以轻松地制作合成大西瓜这样的小游戏。只需简单的设置节点、物理引擎和碰撞检测,再添加一些特效和动画,最后完成游戏逻辑和界面设计。希望这些信息对您有所帮助! ### 回答2: Cocos Creator是一款专业的游戏开发引擎,可以帮助开发者快速创建各类游戏。合成大西瓜是一款益智休闲游戏,玩家需要通过不断合成西瓜来获得更大的西瓜。在Cocos Creator中实现合成大西瓜游戏可以分为以下几个步骤: 1. 创建游戏场景:使用Cocos Creator的界面编辑器可以创建游戏主场景,设计好游戏背景、按钮和各种元素。 2. 添加游戏元素:在游戏场景中添加西瓜元素,可以使用Cocos Creator提供的精灵组件将西瓜图片加载到游戏中。可以使用代码控制西瓜的位置、大小和交互行为。 3. 实现合成逻辑:在游戏中,玩家可以通过点击相同大小的西瓜进行合成,合成后的西瓜会变得更大。可以使用Cocos Creator的碰撞检测功能来判断玩家是否点击到了相同大小的西瓜,并执行合成操作。 4. 设计游戏规则:设定游戏的规则和目标,例如规定玩家需要在规定时间内合成尽可能大的西瓜,或者设定一定数量的西瓜后游戏结束等。 5. 添加声音和动画效果:使用Cocos Creator的动画编辑器可以给游戏中的元素添加动画效果,增加游戏的趣味性。同时,可以使用Cocos Creator的音频引擎来播放背景音乐和音效,提升游戏的音效效果。 通过以上步骤,我们可以在Cocos Creator中实现一个简单的合成大西瓜游戏。当然,具体的实现细节还需要根据项目需求和个人创意来决定。Cocos Creator以其强大的功能和易用性,为开发者提供了一个快速实现游戏创意的平台。 ### 回答3: Cocos Creator 是一款开发工具,它能让开发者更加轻松地创建游戏和应用程序。而“合成大西瓜”则是一款非常流行的休闲游戏。 “合成大西瓜”游戏的玩法非常简单,玩家需要通过不断点击屏幕,让小西瓜合成更大的西瓜。初始时,玩家只有一个小西瓜,通过不断合成,可以让西瓜逐渐变大。合成后的西瓜可以卖掉,用来获得更多金币,进一步扩展农田,购买更多的小西瓜,从而加快合成的速度。 在 Cocos Creator开发合成大西瓜”这样的游戏非常方便。Cocos Creator 提供了强大的编辑器和工具,可以帮助开发者快速创建游戏场景、设计游戏元素、编写游戏逻辑等。开发者可以使用 Cocos Creator 内置的脚本语言 TypeScript 或 JavaScript 来编写游戏逻辑,并且可以在实时预览中即时查看游戏效果。 对于“合成大西瓜”这个游戏来说,开发者可以借助 Cocos Creator 的节点系统来管理游戏中的所有元素,通过点击事件来触发合成逻辑。同时,Cocos Creator 还提供了丰富的动画系统,可以帮助开发者实现流畅的合成过程和其他动态效果。 总的来说,Cocos Creator 是一个非常适合开发合成大西瓜”这类休闲游戏的工具。它简化了游戏开发的流程,提供了丰富的功能和易用的界面,让开发者能够更加专注于游戏的创意和设计,从而创造出更好玩、更好看的游戏作品。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值