用海龟画图模块制作的英文字母打字练习程序。以下是部分代码预览,模块扫码后都可见:
"""字母爆破机.py,这是一个用Python的海龟画图模块制作的打字练习小游戏,有着比较漂亮的界面,本版本增加了提示功能。"""
from random import randint,choice
from explosion import * # 导入爆炸效果类
from tipfunc import *
from keycodes import *
def spawn_letter():
"""产生一个字母对象,并且移动,使用screen的standard坐标系"""
def init():
"""初始化字母,让它在左边或右边 随机出现。letter是一个字母对象"""
letter.clear()
letter.go_on = True # 用于暂停
letter.hitted = False # 描述是否击中
letter.keycode = choice(letters_keys) # 随机选择一个keycode
letter.value = letters[letter.keycode] # 随机选择一个字母
def move():
"""移动字母,移动的距离超过屏幕长度并且没有被击中则换个字母重来"""
if letter.go_on :
letter.clear()
letter.fd(letter.speed )
letter.distance += letter.speed
letter.write(letter.value,align='center',font=ziti)
def eventfun(event):
"""按键事件执行函数,event如下所示,坐标是tkinter式坐标:
KeyPress event state=Mod1 keysym=a keycode=65 char='a' x=314 y=355>"""
if event.keycode == 32 : letter.go_on = not letter.go_on
if event.keycode == letter.keycode: # 表示击中了
def setspeed(x,y):
"""设置字母的移动速度"""
letter.speed = screen.numinput("速度","请输入字母移动速度",default=5,maxval=30,minval=1)
if letter.speed == None : letter.speed = 5
screen.listen() # 会失去焦点,需重新监听
ziti = ("黑体",56,'normal')
tip_cors = TIP_CORS_DICT # 提示坐标映射表
letters = KEYCODE_DICT # 键码与字符串映射表
letters_values = list(letters.values()) # 字母的值表,如D,9
letters_keys = list(letters.keys()) # keycode表
if __name__ == "__main__":
width,height = 800,600
screen = Screen()
screen.bgpic("bg.png")
screen.setup(width,height)
screen.title("字母爆破机,作者:李兴球")
screen.delay(0)
explosion_images = glob("explosion/*.gif")
[screen.addshape(image) for image in explosion_images]
spawn_letter()
screen.mainloop()
下载完整源代码与素材,包含各个子模块,请
需要浏览更多吗?
成为会员后,登陆才能继续浏览!联系微信scratch8即可办理会员。
(会员专属:能浏览所有文章,下载所有带链接的Python资源。)

