好记性不如烂笔头,娱乐一下吧!
文章目录
- 一、前言
- 二、Robot是什么?
- 三、方法介绍
- 四、案例
- 五、总结
一、前言
相信大家都玩过“别再踩白块了”,但是有些极限手速也就只能在某站某音才能看到了,有没有尝试过自己来挑战!
当然也许可以使用Java辅助,在学习过程中娱乐消闲一下
Java的Robot类也许可以给你带来灵感。
睡了一觉起来发现还在闯关!无奈结束游戏
提示:以下是本篇文章正文内容,因为每个白块可能摆放位置等不确定因素,本篇按照439某一个白块娱乐一下,其它未做测试
二、Robot是什么?
Java中Robot类位于java.awt.Robot,该类用于为测试自动化,自运行演示程序和其他需要控制鼠标和键盘的应用程序生成本机系统输入事件,Robot类的主要目的是便于Java平台实现自动测试。
三、方法介绍
// 实例化一个Robot对象, robot
Robot robot = new Robot();
// delay(30); 停顿时间
robot.delay(30);
// 将鼠标直接闪现到450,450位置
robot.mouseMove(450,450);
// 模拟按下鼠标左键
robot.mousePress(KeyEvent.BUTTON1_DOWN_MASK);
// 模拟按下松开的反应时间
robot.delay(30);
// 模拟松开鼠标左键
robot.mouseRelease(KeyEvent.BUTTON1_DOWN_MASK);
// 获取某点位的Color值
robot.getPixelColor(450,450);
如果需要知道当前屏幕每个点位置的方式有很多,这里我使用的是utools中的“zb” 坐标拾取,十分方便。
好!这是目前该功能所需要用到的方法,其它方法可以根据部分方法进行猜测,和键盘鼠标相关的都有涉及。
四、案例
别踩白块娱乐网址(不知道能不能贴欸。。仅供学习娱乐使用)
import java.awt.*;
import java.awt.event.KeyEvent;
// 别踩白块
public class StepBlock {
public static void main(String[] args) throws Exception {
// 等待3s,方便我跳转到页面或者结束命令
Thread.sleep(3000);
init();
}
public static void init() throws Exception {
while (true){
Robot robot = new Robot();
judge(robot);
// 模拟点击下一个的停顿时间
robot.delay(30);
}
}
public static void judge(Robot robot){
// 坐标轴(x,y) y是固定的
int specify_y = 536;
// 统一按下松开的时间
int release_mouse = 30;
// 通过 robot.getPixelColor(450,specify_y).getRed() 获取指定坐标位置的RGB中R的颜色并判断
// 我们只要知道黑块的R颜色即可
if(robot.getPixelColor(450,specify_y).getRed()<10){
// 鼠标移动
robot.mouseMove(450,specify_y);
// 鼠标按下
robot.mousePress(KeyEvent.BUTTON1_DOWN_MASK);
// 鼠标停顿时间
robot.delay(release_mouse);
robot.mouseRelease(KeyEvent.BUTTON1_DOWN_MASK);
}
if(robot.getPixelColor(535,specify_y).getRed()<10){
robot.mouseMove(535,specify_y);
robot.mousePress(KeyEvent.BUTTON1_DOWN_MASK);
robot.delay(release_mouse);
robot.mouseRelease(KeyEvent.BUTTON1_DOWN_MASK);
}
if(robot.getPixelColor(610,specify_y).getRed()<10){
robot.mouseMove(610,specify_y);
robot.mousePress(KeyEvent.BUTTON1_DOWN_MASK);
robot.delay(release_mouse);
robot.mouseRelease(KeyEvent.BUTTON1_DOWN_MASK);
}
if(robot.getPixelColor(690,specify_y).getRed()<10){
robot.mouseMove(690,specify_y);
robot.mousePress(KeyEvent.BUTTON1_DOWN_MASK);
robot.delay(release_mouse);
robot.mouseRelease(KeyEvent.BUTTON1_DOWN_MASK);
}
}
}
没错,就是这么简单!
五、总结
本文介绍了Robot类的娱乐使用以上就是今天要讲的内容。