「这是我参与11月更文挑战的第20天,活动详情查看:2021最后一次更文挑战」
👉关于作者
众所周知,人生是一个漫长的流程,不断克服困难,不断反思前进的过程。在这个过程中会产生很多对于人生的质疑和思考,于是我决定将自己的思考,经验和故事全部分享出来,以此寻找共鸣!!!
专注于Android/Unity和各种游戏开发技巧,以及各种资源分享(网站、工具、素材、源码、游戏等)
欢迎关注公众号【空名先生】获取更多资源和交流!
👉前提
【这节王牌,我们就要进入游戏主界面啦】
👉实践过程
😜游戏主界面
经过前面两节的学习,到此开始页面我们就搞定了,接着就是进入开始游戏内容啦。
我们先来分析下具体玩法:
- 1.页面右上角可以提前预览下一个小球内容样式
- 2.在当前小球下落未完成之前不得再次释放新的小球,防止过快
- 3.左侧右侧底侧都不允许超界,有格挡物(碰撞肩擦)
- 4.小球具有自由落体属性以及适当的回弹效果
- 5.在小球合并过程中播放适当的音频以及合并效果
- 6.当超过上侧边界的时候要有输的判定和分数的显示
- 7.可以重新开始游戏和返回首页
所以我们先给其增加背景,左墙,右墙,以及底部地面,位置刚刚好包裹住背面。
为了里面的物体掉落后不出界,需要给墙体增加碰撞器(BoxCollider2D)以及刚体组件(RigidBody2D)
😜实现返回和重玩
在进行场景变换前,他俩都需要判断下当前所得分是不是大于历史最高分,大于的话则将当前的分保存替换,否则的话就可以不用管。然后利用【director.loadScene】加载场景即可。
对了,别忘记给场景中的按钮指定点击事件。
//重玩游戏
GameRePlay() {
//也要判断看是否保存数据
let MaxScore = localStorage.getItem(ScriptStatic.MaxScore);
if (MaxScore != null) {
//当前分数和保存的分数做比较如果大 则保存 如果不大不保存
//parseInt 第二个参数代表的是进制
if (parseInt(MaxScore.toString(), 10) < ScriptStatic.CurrentScore) {
localStorage.setItem(ScriptStatic.MaxScore, ScriptStatic.CurrentScore + "");
}
}
//上面先将分数保存
ScriptStatic.CurrentScore=0;
director.loadScene("scene_game");
}
//返回上一场景
ClickBack() {
let MaxScore = localStorage.getItem(ScriptStatic.MaxScore);
if (MaxScore != null) {
//当前分数和保存的分数做比较如果大 则保存 如果不大不保存
//parseInt 第二个参数代表的是进制
if (parseInt(MaxScore.toString(), 10) < ScriptStatic.CurrentScore) {
localStorage.setItem(ScriptStatic.MaxScore, ScriptStatic.CurrentScore + "");
}
}
director.loadScene("scene_start");
}
👉其他
📢作者:小空和小芝中的小空
📢转载说明-务必注明来源:芝麻粒儿 的个人主页 - 专栏 - 掘金 (juejin.cn)
📢欢迎点赞👍收藏🌟留言📝