社区
J2ME
帖子详情
如何模拟连续按键
danielkoo
2003-12-12 02:58:46
在不支持连续按键的手机上如何模拟连续按键呢?用什么方法好呢?
我想应该使用线程把,但不知道具体怎样实现好!
...全文
60
3
打赏
收藏
如何模拟连续按键
在不支持连续按键的手机上如何模拟连续按键呢?用什么方法好呢? 我想应该使用线程把,但不知道具体怎样实现好!
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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压枪宏文件
罗技CSGO压枪宏文件,5e 完美都能用
appium自动化解决快速
连续
点击方法(绝对简单)
这几天看来网上好多帖子写的自动化快速点击的,涉及到多方面,感觉有点难度,后面自己琢磨用现有的知识去尝试解决下,结果点击速度非常的快,绝对能
模拟
类似后台入口,需要
连续
点击的操作才能进入的场景,下面分享实现方法: dianji.bat里的内容为:adb shell input tap 966 372 下方为python代码 import os path = r'C:/Users/Administrator/Desktop/dianji.bat' 此为dianji.bat的本地路径...
C++驱动级
模拟
按键
vs2013编写
C++驱动级
模拟
按键
vs2013编写 去发现同类优质开源项目:https://gitcode.com/ 此仓库包含了一个使用C++和wring0库编写的驱动级
模拟
按键
项目,适用于Visual Studio 2013开发环境。该项目旨在
模拟
按键
操作,但请注意,由于
模拟
按键
的特性,程序必须以管理员权限启动才能正常使用。 功能说明
模拟
键盘
按键
操作 驱动级实现,更难被常规钩子检测到 使用注意 请...
adb
模拟
不停点击
注意:540 2088坐标值可能需要调整。
模拟
每隔500ms,点击一次拍照按钮。
appium+python adb shell
模拟
按键
操作(input keyevent)
前言 接着上篇介绍input里面的
按键
操作keyevent事件,发送手机上常用的一些
按键
操作 keyevent 1.keyevent事件有一张对应的表,可以直接发送对应的数字,也可以方式字符串,如下两个方法都能实现back键。打开cmd输入指令 # 方法一: > adb shell input keyevent KEYCODE_BACK # 方法二: > adb shell...
J2ME
13,097
社区成员
26,492
社区内容
发帖
与我相关
我的任务
J2ME
Java J2ME
复制链接
扫一扫
分享
社区描述
Java J2ME
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章