学习python有一段时间了,由于python语言的强大和简洁,是一个不错的脚本语言,就准备做个游戏脚本练练手。如果你也想多练项目实战。可以去小编的Python交流.裙 :一久武其而而流一思(数字的谐音)转换下可以找到了,里面有最新Python教程项目

听说pywin32写脚本还不错

pywin32主要代码

我以楚留香的电脑版为例,记录脚本的编写之路吧。

因为主要游戏都在windows跑,没什么好说的,第一步应该是获取窗口句柄。

在按键精灵帮助下,我们知道了游戏窗口句柄的类名和名字分别为"Messiah_Game",“楚留香”。

利用win32gui的函数,获取到窗口句柄,并稍微调整一下我们理想的大小。

import win32con

import win32gui

import win32api

hwnd=win32gui.FindWindowEx(0,0,"Messiah_Game","楚留香")

win32gui.SetForegroundWindow (hwnd)

if(win32gui.IsIconic(hwnd)):

win32gui.ShowWindow(hwnd, win32con.SW_RESTORE)

win32gui.SetWindowPos(hwnd, win32con.HWND_TOPMOST, 300,200,1200,800,win32con.SWP_SHOWWINDOW)

这样就完成对窗口的激活和尺寸,位置设定了。

接下来我们先做一个模块的功能,比如自动摆摊购买,因为端游模式和手游模式摆摊位置不同,我们首先确定为端游模式的坐标。

自动购买第一步,首先是鼠标能移动到‘’藏宝阁‘’图标上

然后我们关注我们需要抢购的东西,再拿他与我们需求的价格做对比,如果小于我们理想的价格,则让脚本自动购买。

所以模拟键盘鼠标的操作和价格识别就显得尤为重要。以下为关注界面,每点击一次关注就会刷新,似乎有点击事件间隔限制。

'''我们希望脚本是在端游模式跑起来的,方便测试,先默认一个Mode为端游模式,后期可以设置一个检查模式功能'''

Mode='端游模式'

if(Mode=='端游模式'):

win32api.SetCursorPos([557, 584])

win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP | win32con.MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)

启动脚本后,发现鼠标虽然移动成功,但是单击命令似乎只能在游戏之外的窗口才会执行?

为什么呢?

这是由于游戏屏蔽了系统API提供的模拟输入,包括键盘鼠标的模拟操作都不会生效。

看起来事情并不简单。

那怎么办?如果你学习也迷茫。可以去小编的Python交流.裙 :一久武其而而流一思(数字的谐音)转换下可以找到了,里面有最新Python教程项目

别急,我们可以模拟键盘鼠标驱动的硬件操作。

以下理一下我们思路

目的:我们希望模拟键盘和鼠标的操作。

可以使用方式或库:

pyinput

autopy

win32api

winio

vb类似于按键精灵的模式

前面三种已经证明不可行,因为都是api层面的操作,一定都会被游戏系统屏蔽。

关于第四种可以实现IO驱动的模拟

介绍winio

但是进入github查看说明文档发现:

也就是说,winio的python接口还不支持win10,其他语言倒是可以支持,但是我们的代码不就前功尽弃了吗?

因此联想到可以使用vb的按键精灵模式来实现模拟输入。

在这里我们并不是要推翻整个代码重写,更不是把语言换成vbscript,我们可以通过调用按键精灵某些插件实现模拟的键盘鼠标输入。

今天就分析到这里,下一篇我们来讲讲怎么使用python调用vb脚本实现键盘鼠标的dx游戏模拟输入吧。

python可以制作游戏脚本吗_用Python写一个游戏脚本,你会吗?相关推荐

  1. java植物大战僵尸游戏下载安装_用 Java 写一个植物大战僵尸简易版

    植物父类.子弹父类就同理可得了. 上面说到子类共有的方法需要抽到父类中,那么部分子类共有的方法该如何处理呢?比如,豌豆射手.寒冰射手可以发射子弹,坚果墙就没有射击的这个行为.所以这里就需要用到接口(I ...

  2. python myqr制作二维码生成器_用Python生成动态二维码,只要5行代码,拥有你的个性二维码!...

    原标题:用Python生成动态二维码,只要5行代码,拥有你的个性二维码! 前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. P ...

  3. shell备份mysql思路_写一个shell脚本备份mysql数据库的步骤

    写一个shell脚本备份mysql数据库的步骤 发布时间:2020-05-25 15:47:41 来源:51CTO 阅读:221 作者:三月 下文我给大家简单讲讲关于写一个shell脚本备份mysql ...

  4. 用 Python + itchat 写一个爬虫脚本每天定时给女朋友发微信暖心话

    项目介绍: 灵感来源 在掘金看到了一篇<用Node+wechaty写一个爬虫脚本每天定时给女(男)朋友发微信暖心话>后,我就想为什么不用 Python 去实现这个功能呢. JUST TO ...

  5. 手把手之如何写一个抢课脚本

    大家好,我是菜鸡q,大家好久不见! 故事的起因是由于群里有人通知马上要选下学期的课了,鉴于第一学期立志认真上课的我头铁选了几门巨难的课后,到学期中由于真的听不懂后索性懒得去上课,所以我决定下学期就选几 ...

  6. 2022-11-10:写一个 bash 脚本以统计一个文本文件 words.txt 中每个单词出现的频率。 为了简单起见,你可以假设: words.txt只包括小写字母和 ‘ ‘ 。 每个单词只由小写

    2022-11-10:写一个 bash 脚本以统计一个文本文件 words.txt 中每个单词出现的频率. 为了简单起见,你可以假设: words.txt只包括小写字母和 ' ' . 每个单词只由小写 ...

  7. 用Node+wechaty写一个爬虫脚本每天定时给女朋友发微信暖心话

    点击上方"前端小苑",选择"置顶公众号" 精品技术文章,热门资讯第一时间送达 wechatBot 微信每日说,每日自动发送微信消息给你心爱的人 项目介绍 灵感来 ...

  8. 用Node+wechaty写一个爬虫脚本每天定时给女(男)朋友发微信暖心话

    wechatBot 微信每日说,每日自动发送微信消息给你心爱的人 项目介绍 灵感来源 在掘金看到了一篇<用Node + EJS写一个爬虫脚本每天定时女朋友发一封暖心邮件>后, 在评论区偶然 ...

  9. pygame为游戏添加背景_用 Python 制作飞机大战小游戏

    这这次用Python中的pygame模块来完成一个飞机大战的小游戏:基本思路是通过方向键来控制飞机的左右移动射击飞船.先来看下最后的效果为了新手也能完成,本文记录了编写的全部流程,也就是每次修改的代码 ...

最新文章

  1. 在代码中获取ApplicationContext实例
  2. css字体更小 css比12px更小的方法
  3. 开发日记-20190622 关键词 读书笔记《鸟哥的Linux私房菜-基础学习篇》
  4. python123作业答案第七周-python一周练习
  5. OpenGL创建hello Window窗口
  6. C#各种结束进程的方法详细介绍
  7. html网页距离顶部50像素,HTML5 教程之CSS Padding(填充)
  8. 机器学习算法平台alink_Alink漫谈(十二) :在线学习算法FTRL 之 整体设计
  9. java编程启蒙_程序设计入门—Java语言
  10. 关系抽取之分段卷积神经网络(PCNN)
  11. 解决:mongod启动报错缺少libcrypto.so.1.1
  12. 山寨新浪微博——TabBarController
  13. Android中framework层下添加aidl编译说程序包不存在
  14. 【U3D实战笔记】2DProject:RushMan
  15. 解析少儿编程与创客教育的实战原理
  16. Convex Optimization
  17. 网站js劫持了怎么处理和预防、js劫持了怎么办
  18. VC驿站全套视频在线观看(B站)
  19. 文档文件等网页端预览功能
  20. UVA12563 Jin Ge Jin Qu hao

热门文章

  1. 可编程中断控制器 8259A
  2. matlab3854芯片控制电路,高功率因数开关电源的研究与实现
  3. python爬去易车网某地市经销商信息
  4. Fedora14 root 登陆 (by lsyz0021)
  5. java 步步惊心 (一) 基础语法
  6. 无须了解计算机内部,Qbasic信息技术教案.doc
  7. 踏入社会需要懂得的道理
  8. 《深入浅出图神经网络》读书笔记(8. 图分类)
  9. python提取图片中的表格,Python从图像中的表中提取值
  10. 您在生活中被哪些伪心理学给欺骗了?