设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 66|回复: 0
打印 上一主题 下一主题

[交流讨论] 震动窗口

[复制链接]

Lv1.梦旅人

梦石
0
星屑
217
在线时间
745 小时
注册时间
2021-3-24
帖子
569

MZ评测员

跳转到指定楼层
1
发表于 3 天前 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
RUBY 代码复制
  1. // 获取当前窗口
  2. const gui = window.require('nw.gui'); // 或在渲染进程中使用全局的 nw 对象
  3. const win = gui.Window.get();
  4.  
  5. /**
  6. * 使当前窗口产生震动效果
  7. * @param {number} intensity - 震动强度(像素偏移量)
  8. * @param {number} duration - 震动总持续时间(毫秒)
  9. * @param {number} interval - 每次移动的时间间隔(毫秒)
  10. */
  11. function shakeWindow(intensity = 15, duration = 500, interval = 60) {
  12.     const startX = win.x;
  13.     const startY = win.y;
  14.     let startTime = Date.now();
  15.  
  16.     // 定义震动的相对移动路径(相对于窗口原始位置)
  17.     // 这里定义了一个简单的震动模式
  18.     const shakePath = [
  19.         { x: -intensity, y: -intensity },
  20.         { x: intensity, y: 0 },
  21.         { x: -intensity, y: intensity },
  22.         { x: 0, y: -intensity },
  23.         { x: 0, y: intensity },
  24.         { x: intensity, y: -intensity },
  25.         { x: -intensity, y: 0 },
  26.         { x: intensity, y: intensity },
  27.         { x: 0, y: 0 } // 最后回到原点
  28.     ];
  29.  
  30.     let step = 0;
  31.     const totalSteps = shakePath.length;
  32.  
  33.     // 执行震动动画
  34.     function animateShake() {
  35.         if (step < totalSteps && (Date.now() - startTime) < duration) {
  36.             const point = shakePath[step];
  37.             win.moveTo(startX + point.x, startY + point.y);
  38.             step++;
  39.             setTimeout(animateShake, interval);
  40.         } else {
  41.             // 震动结束,确保窗口回到原始位置
  42.             win.moveTo(startX, startY);
  43.         }
  44.     }
  45.  
  46.     // 开始震动
  47.     animateShake();
  48. }
  49.  
  50. // 调用函数开始震动
  51. shakeWindow(10, 800, 50);



玩GAL发现的功能,RM还没见过挺好实现的。AI一下就出来了。
想用的自己封装下
全家活光光~
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2025-9-6 02:18

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表