学习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. Git学习系列之一些常用的Git命令收录更新ing
  2. net.sf.json.JSONObject 和org.json.JSONObject 的差别
  3. linux centos 网络 时间 日期 同步
  4. jsp内置对象与el内置对象
  5. 十分钟学习python_Python学习笔记一:十分钟入门
  6. 产品经理做产品设计的九步法
  7. 使用resnet, inception3进行fine-tune出现训练集准确率很高但验证集很低的问题
  8. C#:判断数组中有没有某个值的方法
  9. 第十二届蓝桥杯真题-左孩 子右兄弟(dfs)
  10. 嵌入式C语言编程中经验教训总结(一) 详解const、static和volatile
  11. 2005冬季转会名单-PS
  12. Maven项目管理工具
  13. 2017-本命年里发生的那些事
  14. 学校Win7 KMS激活服务器已经可以用了
  15. day03-python字符串
  16. 学校部门申请成立计算机中心,学生计算机社团成立申请书
  17. OBS键盘插件自定义diy
  18. Xilinx_ISE14.7安装包网盘下载
  19. 从文件加密到到视频文件进度条播放揭秘
  20. 上海域格NB模块主推型号介绍

热门文章

  1. 牢房问题 C++(寻找总因子数为奇数的数)
  2. fc重装机兵计算机密码,fc重装机兵(机甲战士)(MM1)最全攻略秘籍
  3. YOLOv8 Ultralytics:最先进的 YOLO 模型——简介+实战教程
  4. 加密保护软件 WinLicense常见问题整理大全(一)
  5. 英语流利说20181228
  6. cannot compute MatMul as input #1(zero-based) was expected to be a double tensor but is a float...
  7. 多重共线性问题如何解决?
  8. MIM,MOM和MOS电容的区别
  9. 【siggraph2022_whitewater】Guided Bubbles and Wet Foam for Realistic Whitewater Simulation
  10. eclipse如何使用官方中文版