python基础项目实战-打字游戏

1.打字游戏的概述:

我设计的这款打字游戏是根据金山打字里面的一些小游戏的思路来编写的,整体逻辑比较简单,涉及的编程知识也不难,很适合想入手编程而又找不到例子来学习的网友。

2.打字游戏设计的简单思路:

首先,确认需要使用的python安装包:pygame,random,time

random和time工具包是python的标准库,不需要安装,pygame是第三方库,需要自己安装,安装的方式:win+r打开cmd命令提示符下面直接输入:pip install pygame后按回车,等进度条跑完回到c盘路径下即安装成功了。

其次:分析打字游戏要实现哪些功能

功能1:设置游戏界面

功能2:26个英文字母随机从界面上方出现

功能3:出现在界面上的字母能够往下移动

功能4:按下键盘上对应的按键之后界面上对应字母消失并获得分数

升级功能:还可以设计等级,根据等级增加游戏的难度(可以让字母向下移动的速度变快等,这个本次程序不涉及)

3.完整的代码如下:

#coding:utf-8
#1.导入工具包
import pygame
from pygame.locals import *
import random,time
#2.工具包初始化
pygame.init()
#3.游戏界面大小和命名
canvas=pygame.display.set_mode((800,600))
pygame.display.set_caption('打字游戏')

#5.事件处理函数
def handleEvent():
for event in pygame.event.get():
#判断事件类型为退出事件
if event.type==QUIT:
pygame.quit()
#判断事件类型为键盘按键按下
if event.type == KEYDOWN:
print(event.key)
#匹配按下的按键值和字母是否对应
for n in Game.words:
#数字和字母的转换以及字母大小写的转换 lg: a键的值是65,ord(65)='a', 'a'+32=97,97是'A'的ascii码
if event.key == ord(n.word)+32:
Game.words.remove(n)
Game.score+=1

#创建字母类
class Word():
def __init__(self):
self.x = random.randint(0,800)
self.y = 0
#字母随机
self.word = chr(random.randint(65,90))
#字母的颜色随机
self.c = (random.randint(0,255),
random.randint(0,255),
random.randint(0,255))
self.lt = 0
self.it = 0.05

def step(self):
if IsTime(self.lt,self.it):
self.lt = time.time()
self.y+=3

#创建写文字的方法
def fillText(text,position,color):
tf = pygame.font.SysFont('微软雅黑',30)
t = tf.render(text,True,color)
canvas.blit(t,(position))

#创建函数生成多个字母
def Enter():
if IsTime(Game.lt,Game.it):
Game.lt = time.time()
Game.words.append(Word())

#创建类保存全局变量
class Game():
words = []
lt = 0
it = 0.5
score = 0

#创建时间间隔函数
def IsTime(lt,it):
if lt == 0:
return True
ct = time.time()
return ct-lt>=it

#4.主函数
while True:
canvas.fill((255,255,255))
Enter()
for n in Game.words:
w,x,y,color = n.word, n.x, n.y, n.c
fillText(w,(x,y),color)
n.step()
fillText('SCORE:'+str(Game.score),(10,10),(0,0,0))
handleEvent()
pygame.display.update()

了解本专栏

订阅专栏 解锁全文