python写一个按键脚本_【按键教程】用python写脚本 另附垫材24与变奏22的实现

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

二、脚本中需要些什么 以PE10炮为例

#!/usr/bin/python #对mac/linux用户,可以点击脚本文件即运行

# -*- coding: utf-8 -*- #声明文字编码,在脚本用汉字时必备,全用英文也推荐写上

import threading,pvz #载入多线程模块与本帖模块

from pvz import * #可选,能够省略大部分pvz.xxxxx的前半部分。以下默认【使用了】该语句。

pvz.scene = 'PE' #标明场景,可选,默认PE。必须大写,只能在'PE' 'DE' 'RE'中选一个。

pvz.paoList = [(1,5),(6,5),(3,1),(4,1),(3,3),(4,3),(2,5),(5,5),(3,5),(4,5)] #必须,标明炮的位置

ChooseCard(2, 7, True) #imIceShroom

ChooseCard(2, 7) #IceShroom

ChooseCard(2, 8) #DoomShroom

ChooseCard(5, 4) #CoffeeBean

ChooseCard(1, 3) #CherryBomb

ChooseCard(3, 5) #Jalapeno

ChooseCard(3, 2) #Squash

ChooseCard(3, 1) #LilyPad

ChooseCard(4, 7) #Pumpkin

ChooseCard(2, 1) #PuffShroom

LetsRock()

#可选,选卡。楼主推荐把他分开,单独存在一个.py里面。

print('当前句柄 %s' % win32gui.GetWindowText(hwnd))

#在命令行中输出当前句柄(脚本所运行的窗口)的名称。当前句柄默认选择鼠标所在位置的,选错了脚本会无反应。

然后就是核心——炮要怎么打了。

我们可以先这样写:

for wave in range(1, 21): #range(x,y)得到的是[x,y)中的整数

preJudge(0) #实际上是反应炸,用一下预判以提高精度

sleep(5.5-3.73) #3.73是炮的飞行时间

Pao(2,8.1) #炸伴舞

Pao(5,8.1)

就可以了。

然后会遇到问题:第10波僵尸出生靠右,可能无法刷新

于是改为:

for wave in range(1, 21):

preJudge(0, wave%10 == 0) #用条件判断符的真假控制参数

sleep(5.5-3.73) #3.73是炮的飞行时间

if wave % 10 != 0 : #第1~9,11~19波

Pao(2,8.1) #python的层次是靠相同的空白符实现的

Pao(5,8.1)

else : #第10与20波

Pao(2,8.5)

Pao(5,8.5)

#ps:在贴吧只有使用全角空格' '才不会被吃(实际上是多个空白符被html认为成一个),但是这个不能在python中用于缩进!请自行替换成空格,或者从2楼提及的示例地址复制代码。

我们都用脚本了,当然要用炮炸珊瑚嘛,于是:

for wave in range(1, 21):

if wave == 20 :

preJudge(150, True)

Pao(4,6) #炮炸珊瑚

sleep(1.5) #记得两个分支的最终结束时间要一致

else :

preJudge(0, wave%10 == 0)

sleep(5.5-3.73)

if wave % 10 != 0 : #下同,略

.....

还差什么?第9波打完之后我们实际上还要用炮,但是现在这程序第10波会用第9波后面的两炮,因而我们需要:

for wave in range(1, 21):

...

else:

Pao(2,8.1)

Pao(5,8.1)

if(wave % 10 == 9):

pvz.nowPao += 4

pvz.nowPao是控制下一次打哪里的变量(这里pvz.必须带着),一般来说需要再用4炮,那就+4

好,现在我们用36行写好了一个PE10炮需要的【全部内容】。如果说把选卡和中间的空行去掉,那么只需要22行。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值