通过Python进行游戏(第8部分)

在上一部分中,我们使城堡具有了可吹性,并增加了健康表和计时器。
(如果您错过了上一部分,请在此处进行检查。)

在添加完所有先前的内容之后,我发现即使计时器为零或您的健康状况为零,游戏仍在继续。 那种无聊的东西。
没有输赢的游戏就不是游戏。
现在,我们将添加一些输赢方案,以使其更具交互性和趣味性。
我们将添加输赢条件,同时还将添加输赢屏幕。
我们不会在主循环中编写代码,我们将创建一个胜利/失败循环,我们必须在该循环中确定用户是赢是输,并相应显示屏幕。

首先,我们将处理时间参数。 也就是说,如果时间到了,那么我们必须停止游戏并将游戏结果设置为1或获胜。
我们将游戏时间设置为90秒或90000 ms。

其次,如果城堡被敌人摧毁,那么我们也必须停止游戏并将游戏结果设为0或输掉。
精度更为重要,我们必须以任何一种方式计算精度。
精度应浮动,否则将舍入结果。 为此,我们将编写acc [0] * 1.0 ,仅将acc [0]转换为浮点数。

现在,我们必须在game.py文件的末尾编写这些代码:

-10部分-赢/输票
>>> 如果pygame.time.get_ticks()> = 90000:
>>>跑步= 0
>>> exitcode = 1
>>>如果healthvalue <= 0:
>>>跑步= 0
>>> exitcode = 0
>>>如果acc [1]!= 0:
>>>精度= acc [0] * 1.0 / acc [1] * 100
>>>其他:
>>>精度= 0
第-11节-获胜/失败显示
>>>如果exitcode == 0:
>>> pygame.font.init()
>>> font = pygame.font.Font(无,24)
>>>文本= font.render(“精度:“ + str(accuracy)+”%”,True,(255,0,0))
>>> textRect = text.get_rect()
>>> textRect.centerx = screen.get_rect()。centerx
>>> textRect.centery = screen.get_rect()。centery + 24
>>> screen.blit(游戏结束,(0,0))
>>> screen.blit(text,textRect)
>>>其他:
>>> pygame.font.init()
>>> font = pygame.font.Font(无,24)
>>>文本= font.render(“精度:“ + str(accuracy)+”%”,True,(0,255,0))
>>> textRect = text.get_rect()
>>> textRect.centerx = screen.get_rect()。centerx
>>> textRect.centery = screen.get_rect()。centery + 24
>>> screen.blit(youwin,(0,0))
>>> screen.blit(text,textRect)
>>>而1:
>>>对于pygame.event.get()中的事件:
>>>如果event.type == pygame.QUIT:
>>> pygame.quit()
>>>退出(0)
>>> pygame.display.flip()

要查看的行太多,但是当您一一进行时很容易。

我们在这里可以看到,第一个’ if ‘语句检查时间是否到了还是仍然在那里。
第二个“ 如果”声明正在检查您的健康状况或城堡健康状况。
第三个’ if’语句正在寻找您的准确率。

然后在第11节中 ,它将根据您的获胜或失败状态显示屏幕。
赢得胜利的形象,失去胜利的形象。

为了显示成功的图像和失败的图像,我们必须将图像加载到代码上。
第3节的末尾,我们必须编写用于加载图像的代码:
>>> gameover = pygame.image.load(“ resources / images / gameover.png”)
>>> youwin = pygame.image.load(“ resources / images / youwin.png”)。

这里一件重要的事情,我们需要将第4节的while循环从

而1:
坏计时器-= 1

>>>跑步= 1
>>> exitcode = 0
>>>运行时:
>>> badtimer-= 1

无论游戏是否结束,此“ 运行 ”变量都将跟踪游戏的运行情况
无论是否赢了游戏,“ exitcode ”变量都会跟踪玩家。

最后,运行游戏,现在开始玩时,您会感受到更多。

在下一部分中,我们将添加音乐和其他声音效果,以增加凉爽感。
下一部分将非常棒。
感谢您阅读本文

编码愉快!