怎么用Java实现游戏挂机[Forest种树实例]
本文用于使用java实现种树*[目前仅限于Mac OS系统]*
可以帮助你在forests中永远保持排行榜第一.
在使用本教程之前,你需要先安装:
1,Chrome for mac.
2,Java编程器「本文中使用的是Eclipse」
3,Forest for Chrome插件
4,耐心
首先先介绍一下种树的基本原理:[就是按键精灵]:
使用java.Robot实现屏幕自动操控,实现挂机(因此可以使用在其他游戏上)
关于java.Robot的使用可以参照这篇文章:
https://blog.csdn.net/xietansheng/article/details/78453672
Tips:截取坐标还可以使用command+shift+4显示,十字旁边的小数字就是点的坐标.
步骤1,打开chrome.
目前我只找到了2种方法:
(1)直接在程序坞打开:
Robot robot = new Robot();robot.delay(100);robot.mouseMove(539, 783);//这里填写你的chrome在程序坞中的坐标robot.mousePress(InputEvent.BUTTON1_DOWN_MASK);robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK);robot.mousePress(InputEvent.BUTTON1_DOWN_MASK);robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK);robot.delay(5000);
(2)在Finder中打开:
需要提前设置好一个能打开Chrome的窗口,
Robot robot = new Robot();robot.delay(100);robot.mouseMove(539, 783);//这里填写你的chrome在Finder中的坐标robot.mousePress(InputEvent.BUTTON1_DOWN_MASK);robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK);robot.mousePress(InputEvent.BUTTON1_DOWN_MASK);robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK);robot.delay(5000);
(3)其实还可以用文件打开指令,但我试了很多次没用.
步骤2,定位Forests在屏幕中的坐标
直接最大化窗口,使坐标固定.
robot.mouseMove(230, 10);//打开视图robot.mousePress(InputEvent.BUTTON1_DOWN_MASK);robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK);robot.delay(1000);robot.mouseMove(213, 135);//窗口最大化robot.mousePress(InputEvent.BUTTON1_DOWN_MASK);robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK);robot.delay(1000);
步骤3:自动种树:
注意:此处的坐标为Mac book pro2015 版前的坐标,可能会不准,需根据实际情况修改.
robot.mouseMove(956, 59);//打开插件robot.mousePress(InputEvent.BUTTON1_DOWN_MASK);robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK);robot.delay(1000);robot.mouseMove(835, 255);//对上一次种树点击okrobot.mousePress(InputEvent.BUTTON1_DOWN_MASK);robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK);robot.delay(1000);robot.mouseMove(724, 98);//点击返回robot.mousePress(InputEvent.BUTTON1_DOWN_MASK);robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK);robot.delay(1000);robot.mouseMove(835, 206);//点击图标种树robot.mousePress(InputEvent.BUTTON1_DOWN_MASK);robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK);
步骤四:设置计时器:
可以使用while循环实现:
int t = 7200;while (t > 7200) {robot.delay(1000);t--;System.out.println("Time left: " + t + "s.");}}
步骤五:设置循环.
完整代码:
import java.awt.AWTException;
import java.awt.Robot;
import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;
import java.io.IOException;//InputEvent.BUTTON1_MASK 鼠标左键
//InputEvent.BUTTON2_MASK 鼠标中键
//InputEvent.BUTTON3_MASK 鼠标右键
public class ForestsI {public static void main(String[] args) throws AWTException, Exception {Robot robot = new Robot();robot.delay(100);System.out.println("The location is detected in one circumstance.");Thread.sleep(1000);System.out.println("Please make sure that you have opened mac fan control and minimize the manu.");Thread.sleep(1000);System.out.println("There is only 70 icon in the main bar.");Thread.sleep(1000);int k = 1;while (k > 0) {robot.mouseMove(539, 783);//most importantrobot.mousePress(InputEvent.BUTTON1_DOWN_MASK);robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK);robot.mousePress(InputEvent.BUTTON1_DOWN_MASK);robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK);robot.delay(5000);robot.mouseMove(230, 10);//open setsrobot.mousePress(InputEvent.BUTTON1_DOWN_MASK);robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK);robot.delay(1000);robot.mouseMove(213, 135);//maximize the windowsrobot.mousePress(InputEvent.BUTTON1_DOWN_MASK);robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK);robot.delay(1000);robot.mouseMove(956, 59);//open forestsrobot.mousePress(InputEvent.BUTTON1_DOWN_MASK);robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK);robot.delay(1000);robot.mouseMove(835, 255);//click OKrobot.mousePress(InputEvent.BUTTON1_DOWN_MASK);robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK);robot.delay(1000);robot.mouseMove(724, 98);//click backrobot.mousePress(InputEvent.BUTTON1_DOWN_MASK);robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK);robot.delay(1000);robot.mouseMove(835, 206);//click plantrobot.mousePress(InputEvent.BUTTON1_DOWN_MASK);robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK);int t = 0;while (t < 7200) {robot.delay(1000);t++;int tl=7200-t;System.out.println("Time left: " + tl + "s.");}}
接下来你就可以一边使用Forests一边干自己想做的事情了,不用担心自己会忘记打卡.
当然,本人更建议把这个用在更多可以直接无脑挂机的游戏上,可以安装MUMU虚拟机实现每日签到,做一些简单的任务:如某方舟的基建,打卡,签到,刷一些基本的副本,把更多时间用在编程上.
怎么用Java实现游戏挂机[Forest种树实例]相关推荐
- java手机游戏模拟器下载_Java手机游戏模拟器
Java手机游戏模拟器主要针对诺基亚S60系列(屏幕176*220)手机以及其他大屏手机(小屏游戏也可运行,但不能全屏显示),是一款非常简单而且实用的JAVA游戏模拟器,可以正常运行绝大部分JAVA手 ...
- Java在游戏服务器开发中的应用
Java在游戏服务器开发中的应用 width="22" height="16" src="http://hits.sinajs.cn/A1/we ...
- java开源游戏下载安装_开源java扫雷游戏,Swing版。
开源java扫雷游戏,Swing版. xC6JnAIE.zip (60.07 KB) 开源java扫雷游戏,Swing版. 程序文件说明 文件 内容 备注 AboutFrame.java 程序&quo ...
- 《Java 2D游戏编程入门》—— 1.5 创建一个主动渲染的窗口
本节书摘来异步社区<Java 2D游戏编程入门>一书中的第1章,第1.5节,作者:[美]Timothy Wright(莱特),更多章节内容可以访问云栖社区"异步社区"公 ...
- java打地鼠游戏-有背景音乐有图
效果如图: 有背景音效,打击音效 代码不多,30几兆的原因是因为背景音乐文件比较大(一首歌占了一半?) csdn代码下载地址:点击下载 csdn下载需要c币,没有c币可从微信公众号[无心有云] 发送[ ...
- Java ME游戏开发中,碰撞检测算法在Java?ME中的实现(
2019独角兽企业重金招聘Python工程师标准>>> 在Java ME游戏开发中,碰撞检测算法在Java?ME中的实现(百搜技术) 在Java ME游戏开发中,经常需要进行碰撞检测 ...
- java swing游戏_Java Swing井字游戏
java swing游戏 大家好! 哇,自从我在这里发布了东西以来已经有一段时间了! 我必须说我真的很想写东西,我保证我不会再陷入"作家的障碍". 希望 ..最近两个月发生了很多事 ...
- 我的世界java版游戏崩溃_我的世界全攻略之-游戏崩溃的解决方法
我的世界崩溃怎么办?下面吾爱网小编给大家带来我的世界无法正常启动的解决方法,需要的朋友可以参考下. 我的世界作为许多玩家都十分喜爱的模拟经营沙盘类游戏,经常有玩家反映在玩我的世界的时候,游戏总是会出现 ...
- Java(Android)游戏开发框架LGame-0.2.7发布
Java(Android)游戏开发框架LGame-0.2.7发布 2010-08-19更新内容: 1.针对Android版增加了多点触摸支持. 2.增加了一组模拟按钮,以Screen实现Emulato ...
最新文章
- UML类图与类的关系
- java xml 变量替换_Java JAXB如何将XmlElements重新定义为现有变量
- apxs php5,安装PHP5和PHP7
- SQL Server Insert 操作效率(堆表 VS 聚集索引表)
- Android之用adb screencap -p命令截图
- 漫画:从修灯泡来看各种 IT 岗位,你是哪一种?
- 网页上的摄影展:等高响应布局实现
- 对volley的初步分析第一篇
- java dom4j 读取 xml_java使用dom4j读取xml示例
- iOS关于iPhone6和iPhone6 Plus的屏幕适配问题
- JAVA语法基础作业——动手动脑以及课后实验性问题 (七)
- 符合c语言语法规定的表达式,若变量定义为int fahr;,则5(fahr-32)/9是符合C语言语法的表达式...
- NV12等常用YUV数据格式
- 移动硬盘数据丢失恢复办法
- 使用easypoi导出excel设置表头样式
- 苹果退款_退货与退款 - 购买帮助 - Apple (中国大陆)
- Excel作图-折线图分段显示不同颜色
- linux操作系统拼音,linux怎么读(中文读音发音)
- php mysql电子_用php与mysql的电子贺卡代码
- 4、golang 发送电子邮件