python英文单词记忆游戏单词爆破机

"""单词爆破机.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()

 

python英文单词记忆游戏单词爆破机

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李兴球

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值