那份岁月的数码宝贝梦是如何让数码暴龙机震动起来的???

引言

那份岁月的数码宝贝梦

回忆童年,仿佛是一段梦幻般的旅程,而在这个梦幻的时光里,数码宝贝是那个璀璨星辰般的存在,照亮了我们每一个瞬间。

小时候,每当放学回家,电视机前的等待仿佛漫长得无法忍受。每一集《数码宝贝》就像一颗颗星星,闪烁着引人入胜的故事。那时,我们跟随着大冒险者太一,和伙伴们一同穿越到数码世界,面对黑暗的力量,挑战强大的敌人。那些激动人心的战斗、深刻的友谊,如今看来已是记忆中的珍珠,散发着迷人的光芒。

不知道你是否还记得数码宝贝在进化时数码暴龙机的震动,每一次震动都是热血沸腾。

没错,本文重点给大家介绍一下如何在游戏开发中,让数码暴龙机震动起来

本文源工程在文末获取,小伙伴们自行前往。

震动效果

震动效果是一种通过模拟物理震动来提供触感反馈的技术。在多种应用领域中,包括游戏、移动设备、虚拟现实等,震动效果被广泛应用以增强用户体验。

在游戏中,震动效果可以通过各种方式来实现,例如在特定事件发生时触发设备的振动,以模拟游戏中的物理交互或强调重要事件。这可以使玩家更深度地融入游戏世界,提高沉浸感。

应用场景

  1. 碰撞和击打反馈: 当2D游戏角色与环境或敌人发生碰撞时,可以通过震动来模拟角色的受击感,使玩家更直观地感受到游戏中的动作。

  2. 技能释放: 在角色释放强大技能或攻击时,通过震动效果可以增强技能释放的威力感,使玩家更有成就感。

  3. 任务完成和奖励: 当玩家完成关卡或达到目标时,使用震动来传达成功和奖励的感觉,增加玩家的满足度和成就感。

  4. 环境互动: 在2D冒险游戏中,当玩家与环境中的交互元素进行互动时,使用震动来反馈玩家的动作,提高互动的感知。

  5. 警告和危险: 同样,可以在2D游戏中使用震动效果来警告玩家可能的危险,使游戏更具紧张感和挑战性。

实例

1.资源准备

想要让数码暴龙机震动起来,我们先去找到一张熟悉的数码暴龙机的图片。

2.拼UI

给暴龙机添加一个ShakeIt脚本。

3.写代码

核心源码如下:

typescript 复制代码
/**
 * ShakeIt函数用于给指定节点添加震动效果。
 *
 * @param {Node} node - 需要添加震动效果的节点。
 * @param {number} duration - 震动的持续时间,单位为秒。
 */
ShakeIt(node: Node, duration: number) {
    // 停止所有当前节点上的Tween动画,以防止动画叠加
    Tween.stopAllByTarget(node);

    // 使用Tween系统创建一个无限循环的震动动画
    tween(node).repeatForever(
        tween(node)
            .to(this.shakeInternal, { position: this.shakeParams[0] })
            .to(this.shakeInternal, { position: this.shakeParams[1] })
            .to(this.shakeInternal, { position: this.shakeParams[2] })
            .to(this.shakeInternal, { position: this.shakeParams[3] })
            .to(this.shakeInternal, { position: this.shakeParams[4] })
            .to(this.shakeInternal, { position: this.shakeParams[5] })
            .to(this.shakeInternal, { position: this.shakeParams[6] })
            .to(this.shakeInternal, { position: this.shakeParams[7] })
            .to(this.shakeInternal, { position: this.shakeParams[8] })
    ).start();

    // 在指定的持续时间后执行一次性的回调函数
    this.unscheduleAllCallbacks();
    this.scheduleOnce(() => {
        // 停止节点上的所有Tween动画,并将节点位置重置为原点
        Tween.stopAllByTarget(node);
        node.setPosition(0, 0, 0);
    }, duration);
}
  1. ShakeIt函数接收两个参数:node表示需要添加震动效果的节点,duration表示震动的持续时间。

  2. Tween.stopAllByTarget(node)用于停止当前节点上所有的Tween动画,以防止动画叠加。

  3. 使用Tween系统创建一个无限循环的震动动画,通过一系列的to方法定义了震动的不同阶段和位置。这里使用了this.shakeParams数组来存储震动的不同阶段的位置信息。

  4. this.unscheduleAllCallbacks()用于取消之前通过scheduleOnce方法设置的所有一次性回调,以确保不会产生冲突。

  5. 通过scheduleOnce方法,在指定的duration时间后执行一次性的回调函数。在回调函数中,停止节点上的所有Tween动画,并将节点位置重置为原点。

4.效果展示

结语

或许,数码宝贝已经离我们远去,但那份璀璨的梦想和勇气,却一直在心中燃烧。童年的数码宝贝梦,如同一颗永不熄灭的星星,照亮了我们前行的路。愿我们永远怀念那段美好的时光,怀揣着数码宝贝的勇气,勇往直前,迎接未来的冒险。

本文源工程 可通过私信 发送ShakeIt获取。

更多实用源码 可通过阅读原文搜索"亿元程序员"获取。

我是"亿元程序员",一位有着8年游戏行业经验的主程。在游戏开发中,希望能给到您帮助, 也希望通过您能帮助到大家。

AD:笔者线上的小游戏《方块掌机经典》《贪吃蛇掌机经典》《重力迷宫球》《填色之旅》大家可以自行点击搜索体验。

实不相瞒,想要个在看 !请把该文章分享给你觉得有需要的其他小伙伴。谢谢!

推荐专栏:

100个Cocos实例

8年主程手把手打造Cocos独立游戏开发框架

和8年游戏主程一起学习设计模式

从零开始开发贪吃蛇小游戏到上线系列

知识付费专栏

相关推荐
桂月二二42 分钟前
探索前端开发中的 Web Vitals —— 提升用户体验的关键技术
前端·ux
hunter2062062 小时前
ubuntu向一个pc主机通过web发送数据,pc端通过工具直接查看收到的数据
linux·前端·ubuntu
qzhqbb2 小时前
web服务器 网站部署的架构
服务器·前端·架构
刻刻帝的海角2 小时前
CSS 颜色
前端·css
浪浪山小白兔3 小时前
HTML5 新表单属性详解
前端·html·html5
lee5764 小时前
npm run dev 时直接打开Chrome浏览器
前端·chrome·npm
2401_897579654 小时前
AI赋能Flutter开发:ScriptEcho助你高效构建跨端应用
前端·人工智能·flutter
limit for me4 小时前
react上增加错误边界 当存在错误时 不会显示白屏
前端·react.js·前端框架
浏览器爱好者4 小时前
如何构建一个简单的React应用?
前端·react.js·前端框架
qq_392794484 小时前
前端缓存策略:强缓存与协商缓存深度剖析
前端·缓存