200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > python:pygame小游戏(三)—— 打字游戏

python:pygame小游戏(三)—— 打字游戏

时间:2022-10-17 23:42:23

相关推荐

python:pygame小游戏(三)—— 打字游戏

代码一:实现字符下落的基本功能

"""打字游戏1. 声明列表word、xx(x坐标值)、yy(y坐标值)2. 创建init()函数,初始化三个列表3. 第四部分:paint ===>绘制字符4. 第三部分:action ===>进行字母移动5. 键盘监听事件 循环比对"""import pygame, sys# 导入随机函数模块import random"""第一部分:主函数"""def menu():# 1.设置窗口标题pygame.display.set_caption("打字游戏")# 2.死循环while True:# 3.设置背景颜色填充screen.fill((255, 255, 255))# 绘制哪张图,以及起始点位置#screen.blit(back, (0, 0))# 4.调用业务处理函数action()# 5.调用图形图案绘制函数paint()# 7.屏幕刷新延迟pygame.time.delay(10)# 6.设置窗口刷新屏幕pygame.display.update()"""第二部分:变量声明初始化区域"""# 设置窗体screen = pygame.display.set_mode((800, 600), 0, 0)# 存储字母列表word = []# 存储字母坐标值列表xx = []yy = []# 加载图片# back = pygame.image.load("1.jpg")"""第五部分:初始化函数"""def init():for i in range(0,10):# 字母 ===》A :65 a==>97word.append(random.randint(65,90))# 坐标值xx.append(random.randint(0,800))yy.append(random.randint(0,600))"""第三部分:业务逻辑处理区域"""def action():# 4.1 循环迭代事件监听for event in pygame.event.get():# 4.2 判断是否退出系统if event.type == pygame.QUIT:sys.exit()# 4.4 循环比对if event.type == pygame.KEYDOWN: # 键盘按下# 4.5 循环遍历与按键比较for i in range(0,10):# 4.6 判断if event.key == word[i]+32:# 4.7 业务处理word[i] = random.randint(65,90) # 使得word“消失”xx[i] = random.randint(0,800) # xx坐标另产生一个随机数,表现为“消失”# 使得yy坐标“消失”,yy坐标变负号,消失在屏幕看不见的位置yy[i] = -random.randint(0,600)# 4.8 防止消失多个break# 4.3 字母移动for i in range(0,10):yy[i] += 1# 循环判断if yy[i] > 600:yy[i] = 0# 4.3.1 根据飞行方向修改坐标值# 4.3.2 根据坐标值修改飞行方向# 4.4 根据分数修改速度"""第四部分:图形图案绘制区域"""def paint():# 4.1 初始化字体pygame.font.init()# 4.2 设置字体样式 (ps: wryh.ttf是字体库的文件,该文件已经上传,下载后和项目文件放到一个文件夹中)font = pygame.font.Font("wryh.ttf", 28)# 4.3 循环迭代for i in range(0,10):# 4.4 设置绘制内容fontRead = font.render(chr(word[i]),True,(0,0,0)) # int转字符串,字体为黑色# 4.5 设置绘制内容的坐标screen.blit(fontRead,(xx[i],yy[i])) # 将字符串绘制到该窗口上# main函数if __name__ == '__main__':init()menu()

代码二:进一步完善代码功能,设计成更好看的界面

"""打字游戏1. 声明列表word、xx(x坐标值)、yy(y坐标值)2. 创建init()函数,初始化三个列表3. 第四部分:paint ===>绘制字符4. 第三部分:action ===>进行字母移动5. 键盘监听事件 循环比对拓展练习:1. 分数 score +52. 根据分数处理 速度问题3. 更改颜色 每个字母只有一个颜色4. 更改背景 将背景改为图片"""import pygame, sys# 导入随机函数模块import random"""第一部分:主函数"""def menu():# 1.设置窗口标题pygame.display.set_caption("打字游戏")# 2.死循环while True:# 3.设置背景颜色填充# screen.fill((255, 255, 255))# 绘制哪张图,以及起始点位置screen.blit(back, (0, 0))# 4.调用业务处理函数action()# 5.调用图形图案绘制函数paint()# 7.屏幕刷新延迟pygame.time.delay(speed)# 6.设置窗口刷新屏幕pygame.display.update()"""第二部分:变量声明初始化区域"""# 设置窗体screen = pygame.display.set_mode((800, 600), 0, 0)# 存储字母列表word = []# 存储字母坐标值列表xx = []yy = []# 存储得分score = 0# 存储RGB颜色值R = 0G = 0B = 0# 存储速度speed = 20# 加载图片(选一张好看的图片作为背景)back = pygame.image.load("1.jpg")"""第五部分:初始化函数"""def init():for i in range(0,10):# 字母 ===》A :65 a==>97word.append(random.randint(65,90))# 坐标值xx.append(random.randint(0,800))yy.append(random.randint(0,600))"""第三部分:业务逻辑处理区域"""def action():global score# 4.1 循环迭代事件监听for event in pygame.event.get():# 4.2 判断是否退出系统if event.type == pygame.QUIT:sys.exit()# 4.4 循环比对if event.type == pygame.KEYDOWN: # 键盘按下# 4.5 循环遍历与按键比较for i in range(0,10):# 4.6 判断if event.key == word[i]+32:# 4.7 业务处理word[i] = random.randint(65,90) # 使得word“消失”xx[i] = random.randint(0,800) # xx坐标另产生一个随机数,表现为“消失”# 使得yy坐标“消失”,yy坐标变负号,消失在屏幕看不见的位置yy[i] = -random.randint(0,600)score += 5# 4.8 防止消失多个break# 4.3 字母移动for i in range(0,10):yy[i] += 1# 循环判断if yy[i] > 600:yy[i] = 0# 4.4 根据分数修改速度global speedif score > 500: # 20个字speed = 3elif score > 250: # 50个字speed = 5elif score > 100: # 100个字speed = 10"""第四部分:图形图案绘制区域"""def paint():# 4.1 初始化字体pygame.font.init()# 4.2 设置字体样式 (ps: wryh.ttf是字体库的文件,该文件已经上传,下载后和项目文件放到一个文件夹中)font = pygame.font.Font("wryh.ttf", 28)# 4.3 循环迭代for i in range(0,10):# 4.7 调用updateColorupdateColor()# 4.4 设置绘制内容fontRead = font.render(chr(word[i]),True,(R,G,B)) # int转字符串,字体为黑色scoreShow = font.render("score:%s"%score,True,(255,0,0))# 4.5 设置绘制内容的坐标screen.blit(fontRead,(xx[i],yy[i])) # 将字符串绘制到该窗口上# 4.6 绘制分数screen.blit(scoreShow, (20,20)) # 将字符串绘制到该窗口上"""第六部分:更改RGB颜色值"""def updateColor():global R,G,BR = random.randint(0,255)G = random.randint(0, 255)B = random.randint(0, 255)# main函数if __name__ == '__main__':init()menu()

运行效果贴图展示:

注:

1. 为了使该游戏设计更真实丰富,贴近生活实际,代码可以继续添加其他的功能。

如字母落到底部过程都没有消失,进行扣分处理,低于一定分值结束游戏等。具体实现可自行设计。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。