JAVA-robot 实现弹简单的钢琴曲子(有意思的编程)

我们是基于java开发,所以大家请注意自己是否有java的环境配置

我们需要认识几个关于robot的方法

Robot robot = new Robot(); //首先new一个Robot类,方便后续讲解
​
robot.keyPress(KeyEvent.VK_A); //这个函数表示按下键盘的A键
robot.keyRelease(KeyEvent.VK_A); //这个函数表示抬起键盘的A键
​
robot.delay(3000);//这个函数表示延迟多少毫秒 , 类似于Tread.sleep();

然后我们来了解一下一个好玩的网站

自由钢琴 - AutoPiano | 在线钢琴,键盘钢琴,模拟钢琴,多种乐器选择,好听又好玩
链接放这了↑

我们需要去键位中,选择第二种模式,如箭头所示;主要是这个键位比较方便编程; 既然通过键盘就可以完成钢琴演奏了,那我们是不是可以通过robot来控制完成演奏呢?(虽然机器人莫得感情) 那我们下面就一起来尝试一下。

代码:

public static void main(String[] args) throws AWTException {
    Robot robot = new Robot();
    //小星星
    //String s = new String("1155665-4433221-5544332-5544332-1155665-4433221-");
    //菊花台
    //String s = new String("3323-35323-112353-2212-");
    //送别
    String s = new String("538-685-51322-5387685-52411--");
    char[] c = s.toCharArray();
    robot.delay(3000);
    int delayOfOne = 800;
    for(int i = 0 ; i < c.length ; i++){
        char get = c[i];
        switch (get){
            case '1' :
                robot.keyPress(KeyEvent.VK_A);
                robot.keyRelease(KeyEvent.VK_A);
                robot.delay(delayOfOne);
                break;
            case '2' :
                robot.keyPress(KeyEvent.VK_S);
                robot.keyRelease(KeyEvent.VK_S);
                robot.delay(delayOfOne);
                break;
            case '3' :
                robot.keyPress(KeyEvent.VK_D);
                robot.keyRelease(KeyEvent.VK_D);
                robot.delay(delayOfOne);
                break;
            case '4' :
                robot.keyPress(KeyEvent.VK_F);
                robot.keyRelease(KeyEvent.VK_F);
                robot.delay(delayOfOne);
                break;
            case '5' :
                robot.keyPress(KeyEvent.VK_G);
                robot.keyRelease(KeyEvent.VK_G);
                robot.delay(delayOfOne);
                break;
            case '6' :
                robot.keyPress(KeyEvent.VK_H);
                robot.keyRelease(KeyEvent.VK_H);
                robot.delay(delayOfOne);
                break;
            case '7' :
                robot.keyPress(KeyEvent.VK_J);
                robot.keyRelease(KeyEvent.VK_J);
                robot.delay(delayOfOne);
                break;
            case '8' :  //注意这里的8是升1
                robot.keyPress(KeyEvent.VK_Q);
                robot.keyRelease(KeyEvent.VK_Q);
                robot.delay(delayOfOne);
                break;
            case '-' :
                robot.delay(delayOfOne);
                break;
        }
    }
​
}

思路很简单,去找一个简谱,把音给抄下来,我们只需要控制按键,就可以完成钢琴演奏。注意我这里的延迟时间是已经都写死了,所以听起来会有点怪,大家如果想尝试二分之一音符或者其他高难度的玩法,可以自己尝试,多写几个case总能搞定的(doge)。

注意:代码开始按键控制的延迟我给了3秒,需要在3秒内将界面和光标切换到那个钢琴网站。

最后求个点赞,谢谢~~~~~~

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值