10分钟教会你实现小游戏砸金蛋特效


以前小游戏的野蛮时期,有很多风骚的玩法,比如诱导用户点击广告。套路很多,不得不说大家心思还是很专一,一心搞钱。比如砸金蛋玩法,诱导用户快速点击某个按钮获得奖励,然后按钮下突然出现一个广告,那么这个广告的点击率是相当高了,只要你正儿八经做过游戏接过广告就知道,点击转化率能有个3%就非常不错了。这种肯定会被平台判定为异常数据,逃不出平台的法眼。总之还是不太鼓励这种做法。抛开这种骚操作不说,就说下砸金蛋这种动效。还是可以作为一种游戏的运营工具,在游戏内搞点活动啥的,奖励下玩家。

在按钮上叠加一个banner广告,你说骚不骚

具体实现还是比较简单,一个进度条表示当前的敲击进度,还需要一把锤子,锤子有摆动的动画,敲击一颗金蛋,可以播放一组帧动画,判断一下当前敲击的进度,如果进度完成则执行后续的逻辑。
准备资源

页面布局
在Cocos中UI布局如下

逻辑脚本
主要用的组件是progressBar。核心是要控制进度条。如果用户停止敲了,进度条要慢慢的衰减,刺激用户再次敲击。

update() { // 完成了进度,打开金蛋,执行回调 if (this.progress >= 1 && !this.isOpenEgg) { this.progressBar.progress = this.progress this.isOpenEgg = true this.close() this.openEggCall && this.openEggCall(); return } // 如果不敲击,进度条每一帧衰减0.005 this.progress > 0 && (this.progress -= 0.005) this.progressBar.progress = this.progress},
点击按钮敲金蛋逻辑
// 按钮点击事件openBtnClick() { // 每敲一下进度增加0.1 this.progress += 0.1; var time = Date.now() - this.lastHitTime; time >= 1000 ? this.playHitAnim(1) : this.playHitAnim(Math.max(1000 / time, 2)) this.lastHitTime = Date.now()},// 播放敲的动画playHitAnim(time) { var t = this; this.scheduleOnce(function () { // 敲击爆炸效果,预制体实例化 const boomEffect = cc.instantiate(t.boomEffect) boomEffect.position = cc.v2(28, 94); boomEffect.active = true; boomEffect.setParent(t.eggNode); }, .2 / time); // 锤子旋转动画 var rotate1 = cc.rotateTo(.2, -30), rotate2 = cc.rotateTo(.2, 0), sequence = cc.sequence(rotate1, rotate2), action = cc.speed(sequence, time); this.hammorNode.runAction(action)}
长按下面二维码或者阅读原文可以体验

欢迎关注我的公众号,获取更多游戏开发知识和游戏源码,手把手教你做游戏。
更多历史文章
闭关一周,开发一款消灭星星游戏
相见恨晚,才知道游戏动画的核心居然是这个
解密益智游戏背后的逻辑:水排序核心实现深度解析
玩转合成游戏:从0到1的合成游戏开发指南
新形势下,中小团队和个人开发者还能入局小游戏吗?
游戏弯道设计:曲线运动的关键技巧与策略
到顶部