如何用程序控制格斗游戏输入格斗指令?(100分)

  • 主题发起人 主题发起人 bood
  • 开始时间 开始时间
B

bood

Unregistered / Unconfirmed
GUEST, unregistred user!
我试过用热键,但还是很难发出着式,似乎是击键时间间隔
没有控制好,请高手指点一二
 
在两个热键发出之间 sleep(200) 也许可以
 
这个应该用自动机来解决.你想想,要是有几百种招,如果不用自动机,那你的if..then
..else
要写成什么样阿.
举个例子,如果我现在输入上,那么你就要对所有第一下是上的指令做判定,然后一步步往下走,
直到结束全部输入.还有间隔时间长是什么,间隔时间短又是什么,嘿嘿,你要是if..then
..else
的话,写死你.
作个自动机,以当前输入和间隔时间做状态转换条件,根据绝招的要求写出你的action表
就可以查表实现.
 
hog兄,谢谢你,但是你好象误解了我的意思,我并不是要写去响应‘格斗指令’
的程序,而是想‘作弊’,比如按F1就让游戏中的人物发出大绝招
beta兄,我会回去试试的,如果可以的话一定优待
 
大虾很厉害的,还是参考一下任天堂的资料,有本书是专门讲解任天堂的
 
bood:如果还想接着讨论请定期提前自己的帖子,如果不想继续讨论请结束帖子。
 
一定,一定
谢谢提醒
 
有些游戏的输入获得是通过windows消息,俄有些是通过Directxinput获得.
在试一下.
 
不过用模拟击键的确可以偶尔发出一下,所以应该不是DirectInput吧(对吗),
不过我要每次都成功
 
继续听取大家意见
谢谢大家!!!
(迟迟不结束的原因是,我现在在学校,程序没带,不能试,见谅)
 
基本上讲,用你的想法是无法作到每次都成功的,即便是用sidewinder也很难设定成每次
成功。这是一个与游戏相关的问题,没有通用的解决方法。跟踪游戏程序也许更容易达到
目的。
 
1?那可否讲讲原因呢,dh99兄?
 
还有高手发言吗,我要结束拉
 
向其他应用程序发送模拟键
var
h: THandle;
begin
h := FindWindow(nil, '应用程序标题');
PostMessage(h, WM_KEYDOWN, VK_F9, 0);//发送F9键
end;
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
756
import
I
D
回复
0
查看
2K
DelphiTeacher的专栏
D
I
回复
0
查看
666
import
I
后退
顶部