import java.io.*;
import java.util.*;
import java.awt.*;
import java.awt.event.*;
/**
* 支持脚本文件的按键控制程序
*/
public class KeySprite{
public static void main(String[] args){
String filename = "test.t";
try{
//读取配置文件
Vector v = readFile(filename);
//执行文件
parseVector(v);
}catch(IOException e){
System.out.println("配置文件错误");
}catch(Exception e){
System.out.println("其他错误");
}
}
/**
* 读取文件到Vector中
* @param filepath 文件路径
*/
public static Vector readFile(String filepath) throws IOException{
Vector v = new Vector();
//文件缓冲输入流
BufferedReader br = new BufferedReader(
new InputStreamReader(
new FileInputStream(filepath)));
//读取数据
String s = br.readLine();
while(s != null){
//添加到v
v.add(s);
//读取下一行
s = br.readLine();
}
//关闭输入流
br.close();
//返回数据
return v;
}
/**
* 解析读到的Vector,并执行对应的操作
* @param v Vector对象
*/
public static void parseVector(Vector v){
int size = v.size();
try{
//创建Robot对象
Robot r = new Robot();
for(int i = 0;i < size;i++){
String s = (String)v.get(i);
//分解
String[] data = s.split(" ");
//解析执行
if(data[0].equals("移动")){
//获得坐标
int x = Integer.parseInt(data[1]);
int y = Integer.parseInt(data[2]);
//移动
r.mouseMove(x,y);
}else if(data[0].equals("按键")){
//获得按键种类
char c = data[1].toLowerCase().charAt(0);
//按键
r.keyPress(c);
//释放
r.keyRelease(c);
}else if(data[0].equals("暂停")){
//获得暂停时间
int time = Integer.parseInt(data[1]);
//暂停
Thread.sleep(time);
}
}
}catch(Exception e){
e.printStackTrace();
}
}
}
脚本文件test.t
暂停 1000
移动 200 300
暂停 1000
移动 210 300
暂停 1000
移动 220 300
暂停 1000
移动 230 300
暂停 1000
移动 240 300
暂停 1000
移动 250 300
暂停 1000
移动 260 300
暂停 1000
移动 270 300
暂停 1000
移动 280 300
暂停 1000
移动 290 300
暂停 1000
移动 300 300
暂停 1000
移动 310 300
分享到:
相关推荐
【天龙辅助学习源代码】是一个与编程技术相关的资源,主要涉及的是汇编语言(ASM)的应用。汇编语言是计算机科学中的低级编程语言,它与机器语言密切相关,但比机器语言更易读和编写。在这个源代码中,我们可以预见...
这个"WiEngineDemos_java源代码"包含了使用Java语言编写的示例程序,是学习和理解WiEngine工作原理的好资源。 WiEngine的核心特性包括: 1. **图形渲染**:基于OpenGL ES,提供高性能的2D图形渲染能力,支持精灵、...
【标题】"坦克大战图片版源代码"是一个关于游戏开发的项目,主要涉及的是使用编程语言实现一个基于图片的坦克战斗游戏。这个源代码可能是用Java、C++或Python等编程语言编写的,通过Eclipse这样的集成开发环境(IDE)...
【飞行射击手机游戏代码】是针对初级开发者设计的一款学习资源,它包含了一个完整的手机游戏的源代码,旨在帮助初学者理解和掌握游戏开发的基本原理和技术。这款游戏的编程语言可能包括常用的如Java、C++或者Unity中...
静态编译后的易语言EXE/DLL之间不能再共享譬如窗口、窗口组件等类似资源,对于已经静态连接到一个EXE/DLL中的支持库,该支持库中的数据或资源将不能再被其它EXE/DLL中所使用的同名支持库访问。这是因为代码被分别...
游戏开发是计算机科学的一个分支,专注于创建互动性的娱乐体验,而“Cocos2DDemo1”..."Cocos2DDemo1"这个项目很可能是对这些概念的一个实践展示,通过研究它的源代码,开发者可以深入理解Cocos2D在实际项目中的应用。
1. **编程语言**:游戏的代码可能使用C#、Java、Python或Unity的C#脚本等语言编写。考虑到游戏的类型和可能的平台,C#与Unity引擎的结合是常见的选择,因为它提供了强大的图形和游戏开发功能。 2. **游戏引擎**:...
同时,需要在E盘根目录创建一个名为j2me的文件夹,里面包含java子文件夹以及META-INF文件夹,以便存放源代码和必要的配置文件,如manifest.mf。 【高级用户界面设计】 在第二章中,你将学习如何设计J2ME的高级用户...
JimMaze的文件结构通常会包含资源文件(如图片、音频文件)、源代码文件(包括主程序、游戏逻辑、实体类等)、配置文件(如项目设置、屏幕尺寸等)以及构建脚本。通过分析这些文件,开发者可以学习到如何组织一个...
Codename One 是一个强大的跨平台移动应用开发框架,它允许开发者使用 Java 语言编写一次代码,即可在多个操作系统上运行,包括 iOS、Android、Windows Phone 和黑莓等。这个库的核心目标是简化在 Codename One 上...
- 源代码文件夹,包含了实现各个模块的Kotlin类和函数。 - 测试用例,用于验证模拟器功能的正确性。 - 构建脚本,如Gradle或Apache Maven配置,用于构建和打包模拟器。 - README文件,提供了项目介绍、安装和使用...