python英文单词记忆游戏单词**机
程序员文章站
2022-05-28 18:37:34
...
"""单词**机.py,这是没有定义类制作的一个英文单词打字练习小游戏。
单词会从上面的左边或边冒出来。正确输入后按回车键,它就会爆炸,
按空格键会在移动和暂停之间切换。"""
from random import randint,choice
from explosion import *
from words import *
def spawn_word():
"""产生一个单词对象,并且移动,使用screen的standard坐标系"""
def init():
"""初始化字母,让它在左边或右边 随机出现。letter是一个字母对象"""
nonlocal input_string # input_string是从键盘输入的字符序列
wordobj.clear()
input_string = ""
wordobj.go_on = True # 用于移动和暂停的切换
wordobj.hitted = False # 描述是否击中
wordobj.word = choice(words_keys) # 随机选择一个英文单词
wordobj.translation = words[wordobj.word] # 这是和上面的单词相对应的翻译
wordobj.setheading(randint(0,1) * 180) # 设置方向0向右,180向左
tmp = int(wordobj.heading()/180)
x = ( 2 * tmp - 1 ) * screen_width//2 # 方向右,它会在左边出现
y = randint(140,screen_height//2-150)
wordobj.goto(x,y) # 定位到坐标
wordobj.distance = 0 # 注意这里重定义了distance
screen.title(wordobj.word + " ," + wordobj.translation)
def move():
"""移动字母,移动的距离超过屏幕宽度并且没有被击中则换个字母重来"""
if wordobj.go_on :
wordobj.clear()
wordobj.fd(wordobj.speed )
wordobj.distance += wordobj.speed
wordobj.write(wordobj.word,align='center',font=ziti) # 显示的是英文单词
if wordobj.distance < screen_width and not wordobj.hitted:
screen.ontimer(move,50)
else:
init()
move()
def eventfun(event):
"""按键事件执行函数,event如下所示,坐标是tkinter式坐标:
pass
if __name__ == "__main__":
width,height = 800,600
screen = Screen()
screen.bgpic("bg.png")
screen.setup(width,height)
screen.delay(0)
explosion_images = glob("explosion/*.gif")
[screen.addshape(image) for image in explosion_images]
spawn_word()
screen.mainloop()
上一篇: Vue 小白学习记录
下一篇: Python英文单词变形