pygame游戏之旅 计算游戏中躲过的障碍数量

 更新时间:2018年11月20日 15:25:44   作者:观月执白  
这篇文章主要为大家详细介绍了pygame游戏之旅的第8篇,教大家实现游戏中躲过障碍数量的计算,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文为大家分享了pygame游戏之旅的第8篇,供大家参考,具体内容如下

定义一个计数函数:

def things_dodged(count):
 font = pygame.font.SysFont(None, 25)
 text = font.render("Dodged:"+str(count), True, black)
 gameDisplay.blit(text,(0,0))

在游戏循环中加入计数,然后增加一些游戏难度,例如加速障碍,增加障碍的宽度:

dodged += 1
thing_speed += 1
thing_width += (dodged * 1.2)

全部代码:

import pygame
import time
import random
 
pygame.init()
 
white = (255,255,255)
black = (0,0,0)
 
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')
 
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 message_diaplay(text):
 largeText = pygame.font.Font('freesansbold.ttf',115)
 TextSurf, TextRect = text_objects(text, largeText)
 TextRect.center = ((display_width/2),(display_height/2))
 gameDisplay.blit(TextSurf, TextRect)
 pygame.display.update()
 time.sleep(2)
 game_loop()
 
def crash():
 message_diaplay('You Crashed')
 
 
def game_loop():
 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
  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_loop()
pygame.quit()
quit()

效果图:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 对python数据切割归并算法的实例讲解

    对python数据切割归并算法的实例讲解

    今天小编就为大家分享一篇对python数据切割归并算法的实例讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-12-12
  • python决策树之C4.5算法详解

    python决策树之C4.5算法详解

    这篇文章主要为大家详细介绍了python决策树之C4.5算法的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-12-12
  • Python 可爱的大小写

    Python 可爱的大小写

    和其他语言一样,Python为string对象提供了转换大小写的方法:upper() 和 lower()。还不止这些,Python还为我们提供了首字母大写,其余小写的capitalize()方法,以及所有单词首字母大写,其余小写的title()方法。
    2008-09-09
  • Pandas实现数据拼接的操作方法详解

    Pandas实现数据拼接的操作方法详解

    Python处理大规模数据集的时候经常需要使用到合并、链接的方式进行数据集的整合,本文为大家主要介绍了.merge()、 .join() 和 .concat() 三种方法,感兴趣的可以了解一下
    2022-04-04
  • Python中的分布式框架Ray的安装与使用教程

    Python中的分布式框架Ray的安装与使用教程

    Ray框架下不仅可以通过conda和Python十分方便的构建一个集群,还可以自动的对分布式任务进行并发处理,且支持GPU分布式任务的提交,本文介绍了基于Python的分布式框架Ray的基本安装与使用,感兴趣的朋友一起看看吧
    2024-08-08
  • Django使用中间件解决前后端同源策略问题

    Django使用中间件解决前后端同源策略问题

    这篇文章主要介绍了Django使用中间件解决前后端同源策略问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-09-09
  • python编辑用户登入界面的实现代码

    python编辑用户登入界面的实现代码

    这篇文章主要介绍了python编辑用户登入界面的实现代码,非常不错,代码简单易懂,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-07-07
  • Python eval函数原理及用法解析

    Python eval函数原理及用法解析

    这篇文章主要介绍了Python eval函数原理及用法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-11-11
  • Python文件操作实战案例之用户登录

    Python文件操作实战案例之用户登录

    以前只是用c语言文件操作打过用户登入,学了几天的python我感觉我又行了,下面这篇文章主要给大家介绍了关于Python文件操作实战案例之用户登录的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-05-05
  • 对python过滤器和lambda函数的用法详解

    对python过滤器和lambda函数的用法详解

    今天小编就为大家分享一篇对python过滤器和lambda函数的用法详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-01-01

最新评论