前言
语言是一种艺术,但是作为语言的基础——词汇,却不像艺术那样赏心悦目。不断的记忆与复
习,让词汇成为很多孩子在学习英语时,最难完全攻克的关卡。
所有文章完整的素材+源码都在👇👇
今天这篇代码文章为大家介绍了一个简单好玩儿的单词小游戏程序,将原本枯燥无味的单词与
生动有趣的游戏相结合,寓教于乐。
这种兼具挑战性和趣味性的游戏,很容易激起孩子的兴趣,并且色彩斑斓的画面,帮助他们更
好的把形与意结合。小编认为,虽然单词对于英语的学习很重要,家长也不能强行让他们去
记忆,而是尝试以各种形式引导,化解抵触与畏难情绪,才有利于后续的学习哦~
记单词,也可以玩游戏一样打通关,又紧张又兴奋,不刻意,还过瘾,马上跟我一起来体验
吧!
正文
Are you speak Engilsh?
一、环境准备
1)运行环境
环境安装:python 3.8: 解释器、pycharm: 代码编辑器、pygame、numpy、部分自带的模块
直接安装Python就可以使用了。
相对应的安装包/安装教程/激活码/使用教程/学习资料/工具插件 可以直接找我厚台获取 。
2)模块安装
第三方库的安装方式如下:
一般安装:pip install +模块名 镜像源安装:pip install -i
https://pypi.douban.com/simple/+模块名 (还有很多国内镜像源,这里是豆瓣的用习惯
了,其他镜像源可以去看下之前文章都有的)
模块安装问题可以详细的找我给大家讲一下的哈,之前其实也有的文章写了几个点的。
3)图片文字素材等
二、代码展示
主程序——
import pygame
import sys
import traceback
import os
from pygame.locals import *
from random import *
import numpy as np
import linecache
pygame.init() # 游戏初始化
pygame.mixer.init() # 音效初始化
bg_size = width, height = 480, 700 # 屏幕大小
screen = pygame.display.set_mode(bg_size)
pygame.display.set_caption("英语单词挑战") # 标题
# 背景图片
background = pygame.image.load("source/背景.png") # .convert()
BLACK = (0, 0, 0)
WHITE = (255, 255, 255)
GREEN = (0, 255, 0)
RED = (255, 0, 0)
# 游戏音乐
pygame.mixer.music.load("source/背景音乐.mp3")
pygame.mixer.music.set_volume(0.2)
success_sound = pygame.mixer.Sound("source/正确.wav")
success_sound.set_volume(0.2)
lost_sound = pygame.mixer.Sound("source/失败.wav")
lost_sound.set_volume(0.2)
win_sound = pygame.mixer.Sound("source/胜利.wav")
win_sound.set_volume(0.2)
class Word(pygame.sprite.Sprite):
def __init__(self, bg_size, showword):
pygame.sprite.Sprite.__init__(self)
self.word = showword # 获取单词
self.length = len(self.word) # 单词长度
self.wordfont = pygame.font.SysFont("arial", 36) # 使用系统字体
self.wordtext = self.wordfont.render(self.word, True, WHITE, BLACK) # 单词
self.promptword = "*"*self.length
self.showtext = self.wordfont.render(self.promptword, True, WHITE, BLACK) # 隐藏单词
self.succtext = self.wordfont.render("", True, WHITE)
self.rect = self.wordtext.get_rect() # 单词坐标
self.width, self.height = bg_size[0], bg_size[1]
self.rect.left, self.rect.top = (self.width - self.rect.width) // 2, 20 # 定义坐标
self.speed = 1 # 下移速度
# self.destroy_images = []
# self.destroy_images.extend([pyg