python暂停和恢复游戏_pygame游戏之旅 添加游戏暂停功能

pygame游戏之旅 添加游戏暂停功能

来源:中文源码网    浏览: 次    日期:2019年11月5日

【下载文档:  pygame游戏之旅 添加游戏暂停功能.txt 】

(友情提示:右键点上行txt文档名->目标另存为)

pygame游戏之旅 添加游戏暂停功能本文为大家分享了pygame游戏之旅的第13篇,供大家参考,具体内容如下

定义暂停函数:

def paused():

largeText = pygame.font.SysFont('comicsansms',115)

TextSurf, TextRect = text_objects('Paused', largeText)

TextRect.center = ((display_width/2),(display_height/2))

gameDisplay.blit(TextSurf, TextRect)

while pause:

for event in pygame.event.get():

print(event)

if event.type == pygame.QUIT:

pygame.quit()

quit()

## gameDisplay.fill(white)

button("Continue", 150, 450, 100, 50, green, bright_green,game_loop)

button("Quit",550, 450, 100, 50, red, bright_red,quitgame)

pygame.display.update()

clock.tick(15)重新定义原来的crah函数:

def crash():

largeText = pygame.font.SysFont('comicsansms',115)

TextSurf, TextRect = text_objects('You Crashed!', largeText)

TextRect.center = ((display_width/2),(display_height/2))

gameDisplay.blit(TextSurf, TextRect)

while True:

for event in pygame.event.get():

print(event)

if event.type == pygame.QUIT:

pygame.quit()

quit()

## gameDisplay.fill(white)

button("Play Again", 150, 450, 100, 50, green, bright_green,game_loop)

button("Quit",550, 450, 100, 50, red, bright_red,quitgame)

pygame.display.update()

clock.tick(15)源代码:import pygame

import time

import random

pygame.init()

white = (255,255,255)

black = (0,0,0)

gray = (128,128,128)

red = (200,0,0)

green = (0,200,0)

bright_red = (255,0,0)

bright_green = (0,255,0)

blue = (0,0,255)car_width = 100

display_width = 800

display_height = 600

gameDisplay = pygame.display.set_mode( (display_width,display_height) )

pygame.display.set_caption('A bit Racey')

clock = pygame.time.Clock()

carImg = pygame.image.load('car.png')

pause = False

##crash = True

def things_dodged(count):

font = pygame.font.SysFont(None, 25)

text = font.render("Dodged:"+str(count), True, black)

gameDisplay.blit(text,(0,0))

def things(thingx, thingy, thingw, thingh, color):

pygame.draw.rect(gameDisplay, color, [thingx, thingy, thingw, thingh])

def car(x, y):

gameDisplay.blit(carImg, (x,y))

def text_objects(text, font):

textSurface = font.render(text, True, black)

return textSurface, textSurface.get_rect()

def crash():

largeText = pygame.font.SysFont('comicsansms',115)

TextSurf, TextRect = text_objects('You Crashed!', largeText)

TextRect.center = ((display_width/2),(display_height/2))

gameDisplay.blit(TextSurf, TextRect)

while True:

for event in pygame.event.get():

print(event)

if event.type == pygame.QUIT:

pygame.quit()

quit()

## gameDisplay.fill(white)

button("Play Again", 150, 450, 100, 50, green, bright_green,game_loop)

button("Quit",550, 450, 100, 50, red, bright_red,quitgame)

pygame.display.update()

clock.tick(15)

def button (msg, x, y, w, h, ic, ac, action=None):

mouse =pygame.mouse.get_pos()

click = pygame.mouse.get_pressed()

print(click)

if x + w > mouse[0] > x and y + h > mouse[1] > y:

pygame.draw.rect(gameDisplay, ac, (x,y,w,h))

if click[0] == 1 and action != None:

action()

## if action == "play":

## action()

## if action == "quit":

## pygame.quit()

## quit()

else:

pygame.draw.rect(gameDisplay, ic, (x,y,w,h))

smallText = pygame.font.SysFont('comicsansms', 20)

textSurf, textRect = text_objects(msg, smallText)

textRect.center = ( (x+(w/2)), (y+(h/2)))

gameDisplay.blit(textSurf, textRect)

def quitgame():

pygame.quit()

quit()

def unpause():

global pause

pause = False

def paused():

largeText = pygame.font.SysFont('comicsansms',115)

TextSurf, TextRect = text_objects('Paused', largeText)

TextRect.center = ((display_width/2),(display_height/2))

gameDisplay.blit(TextSurf, TextRect)

while pause:

for event in pygame.event.get():

print(event)

if event.type == pygame.QUIT:

pygame.quit()

quit()

## gameDisplay.fill(white)

button("Continue", 150, 450, 100, 50, green, bright_green,unpause)

button("Quit",550, 450, 100, 50, red, bright_red,quitgame)

pygame.display.update()

clock.tick(15)

def game_intro():

global pasue

pause = False

intro = True

while intro:

for event in pygame.event.get():

print(event)

if event.type == pygame.QUIT:

pygame.quit()

quit()

gameDisplay.fill(white)

largeText = pygame.font.SysFont('comicsansms',115)

TextSurf, TextRect = text_objects('A bit Racey', largeText)

TextRect.center = ((display_width/2),(display_height/2))

gameDisplay.blit(TextSurf, TextRect)

button("GO", 150, 450, 100, 50, green, bright_green,game_loop)

button("Quit",550, 450, 100, 50, red, bright_red,quitgame)

pygame.display.update()

clock.tick(15)

def game_loop():

global pause

x = display_width * 0.45

y = display_height * 0.8

x_change = 0

dodged = 0 gameExit = False

thing_startx = random.randrange(0, display_width)

thing_starty = -600

thing_speed = 7

thing_width = 100

thing_height = 100

while not gameExit:

for event in pygame.event.get():

if event.type == pygame.QUIT:

pygame.quit()

quit()

if event.type == pygame.KEYDOWN:

if event.key == pygame.K_LEFT:

x_change = -5

elif event.key == pygame.K_RIGHT:

x_change = 5

elif event.key == pygame.K_p:

pause = True

paused()

if event.type == pygame.KEYUP:

if event.key == pygame.K_LEFT or event.key == pygame.K_RIGHT:

x_change = 0

print(event)

x += x_change

gameDisplay.fill(white)

things(thing_startx, thing_starty, thing_width, thing_height, black)

thing_starty += thing_speed

car(x,y)

things_dodged(dodged)

if x > display_width - car_width or x < 0:

gameExit = True

if thing_starty > display_height:

thing_starty = 0 - thing_height

thing_startx = random.randrange(0, display_width)

dodged += 1

thing_speed += 1

thing_width += (dodged * 1.2)

if y < thing_starty + thing_height:

print('y crossover')

if x > thing_startx and x < thing_startx + thing_width or x + car_width > thing_startx and x + car_width < thing_startx + thing_width:

print('x crossover')

crash()

pygame.display.update()

clock.tick(60)

#crash()

game_intro()

game_loop()

pygame.quit()

quit()结果图:以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持中文源码网。

亲,试试微信扫码分享本页! *^_^*

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/504219.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

easyvision视觉软件 源码_一对一直播源码都有哪些独具一格的优势?

视频在线观看直播行业发展趋势稳定&#xff0c;一对一直播源码越来越受到大家的欢迎&#xff0c;它拥有着独特的优势&#xff0c;丰富多彩的玩法运用和普遍的主要用途&#xff0c;一对一直播源码有哪些优势呢&#xff1f;1、一对一直播源码别具特色的语音通话。网红是直播时期的…

vba 删除 添加checkbox_如何设置EXCEL输入内容后自动添加边框?

在Excel中我们经常需要对输入的表格内容添加边框&#xff0c;一般的操作步骤是&#xff0c;先输入内容&#xff0c;再设置边框。但这样的问题在于&#xff0c;如果我们下次还要继续输入内容&#xff0c;还要再次添加边框&#xff0c;如果删除内容&#xff0c;还要手动去除边框。…

【学习笔记】第四章——文件 II(基本操作、文件保护、文件系统层次结构、磁盘结构、磁盘调度算法)

文章目录一. 文件&#xff1a;基本操作、保护与层次结构1&#xff09;基本操作2&#xff09;文件保护3&#xff09;文件系统的层次结构结合例子&#xff0c;便于理解二. 磁盘1&#xff09;磁盘结构2&#xff09;调度算法1. 一次磁盘读/写所需时间2. 调度算法介绍好水的一篇博客…

c++ 图的连通分量是什么_【自考】数据结构第五章图,期末不挂科指南,第9篇

图的基本概念首先&#xff0c;你要明确图是什么样子的&#xff0c;就是下面这个样子的 图的定义与术语有向图和无向图直接对比图就可以看出来&#xff0c;有向图和无向图的区别了&#xff0c;这个没有什么难的。 有向图和无向图的表示法有略微的区别&#xff0c;注意看 G1有箭头…

编程时程序无错却崩溃_人间真实:程序员的 60 个崩溃瞬间!

源 / 程序员最幽默(ID&#xff1a;humor1024)程序员&#xff0c;你是否曾经历过这些令你分分钟崩溃或啼笑皆非的绝望瞬间&#xff1f;前方高能预警&#xff0c;这不是演习&#xff01;1. 公司实习生找 Bug2. 在调试时&#xff0c;将断点设置在错误的位置3. 当我有一个很棒的调试…

【学习笔记】第五章——I/O(设备分类、控制方式、软件层次结构、假脱机、缓冲)

文章目录一. 设备分类与控制方式1&#xff09;设备分类2&#xff09;控制方式1. 程序直接控制方式2. 中断驱动方式3. DMA 方式4. 通道控制方式总结二. 软件层次结构与假脱机1&#xff09;软件层次结构2&#xff09;脱机 - 假脱机三. 缓冲&#xff08;重点&#xff09;1&#xf…

3d打印光固化好还是热固化好_UV专利一览(71) —天啦噜!3D打印上太空!

《光固化技术专利一览》为大家集合更新光固化行业技术专利申请情况一览表&#xff0c;实时关注行业动态&#xff0c;了解最新技术发展&#xff0c;敬请关注哟~ 下面就是第七十一期的内容&#xff0c;请收下用于光固化3D打印的树脂槽及三维打印装置公开(公告)号&#xff1a;公开…

yii2 调用未定义函数_Python 函数(三) 使用规则

​一、调用函数使用规则python函数的应用一般需要&#xff1a;先定义、后调用 &#xff0c;否则将报错提示【name * is not defined】未定义名称。但进行函数定义时调用函数不受此限制。错误示例&#xff1a;先调用&#xff0c;后定义&#xff0c;提示【未定义名称】。函数定义…

电脑配置清单_2020年4月最新高性价比电脑配置清单放送,装机不迷路

2019年10月&#xff0c;世界军运会在武汉成功举行&#xff0c;让全世界不少人知道中国有武汉这座美丽的城市。但紧紧过去不到2个月&#xff0c;全世界的人都知道武汉这座城市。因为武汉出现了疫情&#xff0c;一场新的“战争”出现了。随后&#xff0c;武汉直接“封城”了。一直…

【LeetCode笔记】958. 二叉树的完全性检验(Java、二叉树、BFS)

文章目录题目描述思路 && 代码层级遍历法BFS二刷题目描述 考察对完全二叉树性质的理解 思路 && 代码 层级遍历法 一开始试了自底向上的DFS&#xff0c;过了90%的用例&#xff0c;还是考虑得不够全 层级遍历&#xff1a;代码比较多&#xff0c;但是总体效…

python训练手势分类器_python-Keras分类器的准确性在训练过程中稳定...

我有以下神经网络,使用Tensorflow作为后端用Keras编写,我在Windows 10的Python 3.5(Anaconda)上运行&#xff1a;model Sequential()model.add(Dense(100, input_dim283, initnormal, activationrelu))model.add(Dropout(0.2))model.add(Dense(150, initnormal, activationrel…

【学习笔记】结合代码理解设计模式 —— 代理模式(静态代理、动态代理、延伸)

文章目录什么是代理模式一. 代理模式简介二. 静态代理模式三. 动态代理模式万能模版前言&#xff1a;笔记基于狂神设计模式视频、《大话设计模式》观后而写 &#xff08;最近一直在更新之前的刷题博客&#xff0c;今天久违地更新一篇新博客啦&#xff5e;&#xff09; 什么是代…

js 正则 长度不超过50_如何花不超过50元人民币,拍抖音网红海马体照片?

前段时间&#xff0c;抖音上的海马体-网红照一夜间爆发&#xff01;火了&#xff01;海马体照相馆又一次被推上了时尚潮流的打卡风口&#xff0c;深受年轻群体的青睐。其中当然也包括我~这个风我还是特别想要跟一波的。但是想必大家都知道&#xff0c;海马体照相馆生意一直火爆…

多核处理器_英特尔十代酷睿i5-10400大战R5 3600,到底谁是千元处理器一霸?

Hello大家好&#xff0c;我是兼容机之家的小牛。要说英特尔十代酷睿中最走量的处理器&#xff0c;莫过于i5 10400这颗千元神U了。最近我们兼容机之家推出了几款搭载i5 10400等十代酷睿CPU的主机&#xff0c;性价比非常不错&#xff0c;小伙伴可以翻看一下我们往期的文章。今天就…

项目日报模板_第一届全国技能大赛现场直击:混凝土建筑项目全场最“高”

大洋网讯 混凝土建筑项目的比赛场馆位于室外&#xff0c;高达12米&#xff0c;让这个项目成为全场最“高”项目。“在现代化大型工地&#xff0c;都是用泵车浇灌混凝土&#xff0c;我们这里比赛也模拟了这一个工地的现实场景&#xff0c;让选手使用泵车浇灌混凝土。泵车的手臂要…

【LeetCode笔记】51. N 皇后(DFS、经典题)

文章目录题目描述思路 && 代码题目描述 经典题了…但是大一敲过后就再没碰过了。结果面试还是会问 &#xff0c;今天补一下&#xff5e; 思路 && 代码 还是挺清晰的&#xff0c;要点如下&#xff1a; 使用 DFS&#xff0c;找到一个了再继续找对每一行&…

matlab中结束脚本运行_matlab学习总结(入门篇)

更新&#xff08;2020.3.31&#xff09;&#xff1a;发现MATLAB在网络经济学的仿真模拟方面有很大帮助&#xff0c;主要是构造一个 的方阵来刻画任意两个个体之间的关系。更新&#xff08;2017.6.11&#xff09;:最近用matlab完成了随机过程的两次编程作业&#xff0c;感觉还是…

表格c1等于a1加b1_中国最牛驾照,C1、B1、B2、A1、A2随便开,被称为万能的驾照!...

导读&#xff1a;中国最牛驾照&#xff0c;C1、B1、B2、A1、A2随便开&#xff0c;被称为万能的驾照&#xff01;现在社会上的汽车越来越多了&#xff0c;而车主们&#xff0c;想要行车上路&#xff0c;除了要有车&#xff0c;还要有一样必须的东西&#xff0c;那就是驾照。驾照…

【LeetCode笔记】117.填充每个节点的下一个右侧节点指针 II(二叉树、DFS)

文章目录题目描述思路 && 代码题目描述 很烦…面试被这题干碎了&#xff0c;赶紧给查漏补缺一波&#xff01; 思路 && 代码 主要思路&#xff1a;先右&#xff0c;再左&#xff08;因为左边依赖右边&#xff01;&#xff09;getNext()&#xff1a;当前节点…

r720支持多少频率的内存吗_电脑基础知识:内存条知识大全,看完小学生都了解...

一、基础知识如果你不了解内存条&#xff0c;如果你只知道内存容量越大越好&#xff0c;如果你想更加了解内存条&#xff0c;不妨来看看这里&#xff0c;今天给大家分享那些最简单也是最容易理解的内存条知识。1、定义、作用内存条又叫随机存取存储器&#xff0c;是一种存储技术…