社区
J2ME
帖子详情
如何模拟连续按键
danielkoo
2003-12-12 02:58:46
在不支持连续按键的手机上如何模拟连续按键呢?用什么方法好呢?
我想应该使用线程把,但不知道具体怎样实现好!
...全文
69
3
打赏
收藏
如何模拟连续按键
在不支持连续按键的手机上如何模拟连续按键呢?用什么方法好呢? 我想应该使用线程把,但不知道具体怎样实现好!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
kylinpro
2003-12-16
打赏
举报
回复
小弟觉得如果是一般应用的话,不一定非要用多线程实现,可以使用类似锁变量的方法至状态的切换,在keypressed时至ture,在keyup时至false。在实际的手机游戏上使用过,感觉还可以
danielkoo
2003-12-13
打赏
举报
回复
谢谢楼上的,之前我自己也实现了连续按键,方法基本上与你的相同。我的方法是不断的销毁和重新生成线程。不过我看了这段代码:public void run()
{
while (true)
{
while (hasRepeat)
{
try
{
PlayG();
Thread.sleep(10);
}
catch (Exception e)
{}
}
}
}
}
让我受益匪浅,此方法好多了!真的十分感激:)
itfly
2003-12-12
打赏
举报
回复
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import java.util.*;
public class KzYxPlay extends Canvas implements CommandListener,Runnable
{
private MIDlet midlet;
private Command cmExit;
private Image fj,Dj,zd,d_zd;
private Image BzT[] = new Image[3];//爆炸的图片
public int fj_x,fj_y,zd_y,zd_x,zd_yy,w_zd,df_zd,zd_x1;
private boolean fd=false;
private boolean hasRepeat;
private int gameAction;
private Timer repeatTimer;
private Thread thread;
private RepeatTask task;
private Random var;
public KzYxPlay(MIDlet midlet)
{
this.midlet=midlet;
cmExit= new Command("退出",Command.SCREEN,1);
addCommand(cmExit);
setCommandListener(this);
try
{
fj=Image.createImage("/fj.png");
BzT[0]=Image.createImage("/bz1.png");
BzT[1]=Image.createImage("/bz2.png");
BzT[2]=Image.createImage("/bz3.png");
Dj=Image.createImage("/dj.png");
zd=Image.createImage("/zd.png");
d_zd=Image.createImage("/d_zd.png");
}
catch(Exception e){}
fj_x=getWidth()/2;
fj_y=getHeight()-fj.getHeight();
w_zd=fj_y;
var = new Random();
thread = new Thread(this);
thread.start();
task = new RepeatTask();
repeatTimer = new Timer();
if(zd_x<=0&&zd_x1==0)
{
zd_x=30;
zd_x1=60;
}
}
public void showNotify()
{
repeatTimer.schedule(task,0);
}
public void paint(Graphics g)
{
g.setColor(0xffffff);
g.fillRect(0,0,getWidth(),getHeight());
g.drawImage(fj,fj_x,fj_y,0x10|0x04);
//for(int i=0;i<2;i++)
//{
if(zd_y<=getHeight())
{
g.drawImage(Dj,zd_x,zd_y,0x10|0x04);
g.drawImage(Dj,zd_x1,zd_y,0x10|0x04);
if(zd_yy<getHeight()&&zd_y<fj_y-25)
{
g.drawImage(d_zd,zd_x,zd_yy,0x10|0x04);
g.drawImage(d_zd,zd_x1,zd_yy,0x10|0x04);
zd_yy=(zd_yy+10);
}
else
{
zd_yy=zd_y;
}
zd_y+=3;
}
else
{
zd_x=Math.abs(var.nextInt())%getWidth();
zd_x1=Math.abs(var.nextInt())%getWidth();
if(Math.abs(zd_x-zd_x1)<d_zd.getWidth())
{
if(zd_x>zd_x1)
{
if(zd_x1+30>getWidth())
{
zd_x=zd_x1-30;
}
else
{
zd_x=zd_x1+30;
}
}
else
{
if(zd_x+30>getWidth())
{
zd_x1=zd_x+30;
}
else
{
zd_x1=zd_x-30;
}
}
}
zd_y=0;
}
// }
if(fd==true)
{
g.drawImage(zd,fj_x,w_zd,0x10|0x04);
g.drawImage(zd,fj_x+20,w_zd,0x10|0x04);
w_zd=w_zd-10;
if(w_zd<0)
{
w_zd=fj_y;
fd=false;
}
}
}
public void commandAction(Command c,Displayable d)
{
if(c==cmExit)
{
((KzYx)midlet).exitApp();
}
}
protected void keyRepeated(int keyCode)
{
gameAction=getGameAction(keyCode);
}
protected void keyPressed(int keyCode)
{
gameAction = getGameAction(keyCode);
hasRepeat = true;
}
protected void keyReleased(int keyCode)
{
hasRepeat = false;
}
public void PlayG()
{
switch(gameAction)
{
case LEFT:
if(fj_x>0)
fj_x-=3;
break;
case RIGHT:
if(fj_x<getWidth())
fj_x+=3;
break;
case UP:
if(fj_y>0)
fj_y-=3;
break;
case DOWN:
if(fj_y<getHeight())
fj_y+=3;
break;
case FIRE:
fd=true;
break;
}
repaint();
}
public void run()
{
while(true){
repaint();
try
{
Thread.sleep(10);
}
catch(InterruptedException interruptedexception) { }
}
}
class RepeatTask extends TimerTask
{
public void run()
{
while (true)
{
while (hasRepeat)
{
try
{
PlayG();
Thread.sleep(10);
}
catch (Exception e)
{}
}
}
}
}
}
我写的PAINT的部分乱写的,不多实现了重复按键的。你可以参考一下。我也参考了一位网友的游戏。!希望对你有帮助!
罗技CSGO压枪宏文件
当玩家触发宏
按键
时,鼠标会按照预设的速度和时间间隔自动执行这些动作,例如,按下并快速松开鼠标键,同时
模拟
下移鼠标来压枪。这种功能在快节奏的CS:GO对战中,可以节省玩家的反应时间和精确的手动操作,提高射击...
appium自动化解决快速
连续
点击方法(绝对简单)
这几天看来网上好多帖子写的自动化快速点击的,涉及到多方面,感觉有点难度,后面自己琢磨用现有的知识去尝试解决下,结果点击速度非常的快,绝对能
模拟
类似后台入口,需要
连续
点击的操作才能进入的场景,下面分享...
appium+python adb shell
模拟
按键
操作(input keyevent)
接着上篇介绍input里面的
按键
操作keyevent事件,发送手机上常用的一些
按键
操作 keyevent 1.keyevent事件有一张对应的表,可以直接发送对应的数字,也可以方式字符串,如下两个方法都能实现back键。打开cmd输入指令...
adb
模拟
不停点击
注意:540 2088坐标值可能需要调整。
模拟
每隔500ms,点击一次拍照按钮。
安卓手机
按键
救星应用:
模拟
物理
按键
功能
简介:安卓手机操作系统是市场主流,"
按键
救星"是一款应用软件,当手机物理
按键
出现故障时,它通过虚拟
按键
模拟
实体
按键
的功能。专业版v1.1.4提供了自定义虚拟
按键
、快速启动、音量控制、屏幕锁定解锁、紧急呼叫等...
J2ME
13,097
社区成员
26,491
社区内容
发帖
与我相关
我的任务
J2ME
Java J2ME
复制链接
扫一扫
分享
社区描述
Java J2ME
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章