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


Posted in Python onNovember 20, 2018

本文为大家分享了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()

效果图:

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

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

Python 相关文章推荐
将Python代码嵌入C++程序进行编写的实例
Jul 31 Python
Python实现拷贝多个文件到同一目录的方法
Sep 19 Python
python xml.etree.ElementTree遍历xml所有节点实例详解
Dec 04 Python
python实现字符串和字典的转换
Sep 29 Python
详解python中init方法和随机数方法
Mar 13 Python
python基于递归解决背包问题详解
Jul 03 Python
jupyter 导入csv文件方式
Apr 21 Python
pandas读取csv文件提示不存在的解决方法及原因分析
Apr 21 Python
Python接口测试结果集实现封装比较
May 01 Python
Python 将 QQ 好友头像生成祝福语的实现代码
May 03 Python
Python3自定义http/https请求拦截mitmproxy脚本实例
May 11 Python
pytorch 实现在测试的时候启用dropout
May 27 Python
pygame游戏之旅 添加碰撞效果的方法
Nov 20 #Python
pygame游戏之旅 如何制作游戏障碍
Nov 20 #Python
用Python编写一个简单的CS架构后门的方法
Nov 20 #Python
python pygame实现2048游戏
Nov 20 #Python
python pygame模块编写飞机大战
Nov 20 #Python
Python Scapy随心所欲研究TCP协议栈
Nov 20 #Python
python版飞机大战代码分享
Nov 20 #Python
You might like
Home Coffee Roasting
2021/03/03 咖啡文化
php中理解print EOT分界符和echo EOT的用法区别小结
2010/02/21 PHP
Fine Uploader文件上传组件应用介绍
2013/01/06 PHP
php获取qq用户昵称和在线状态(实例分析)
2013/10/27 PHP
跨浏览器PHP下载文件名中的中文乱码问题解决方法
2015/03/05 PHP
PHP使用正则表达式实现过滤非法字符串功能示例
2018/06/04 PHP
js cookies实现简单统计访问次数
2009/11/24 Javascript
javascript 数组学习资料收集
2010/04/11 Javascript
JavaScript接口实现代码 (Interfaces In JavaScript)
2010/06/11 Javascript
jQuery Tools tooltip使用说明
2012/07/14 Javascript
jQuery中获取Radio元素值的方法
2013/07/02 Javascript
jQuery实现的鼠标经过时变宽的效果(附demo源码)
2016/04/28 Javascript
Js获取图片原始宽高的实现代码
2016/05/17 Javascript
javascript 分号总结及详细介绍
2016/09/24 Javascript
为什么我们要做三份 Webpack 配置文件
2017/09/18 Javascript
vue项目实战总结篇
2018/02/11 Javascript
bing Map 在vue项目中的使用详解
2018/04/09 Javascript
[45:16]完美世界DOTA2联赛循环赛 IO vs FTD BO2第二场 11.05
2020/11/06 DOTA
Python实现购物程序思路及代码
2017/07/24 Python
Python爬虫实现爬取京东手机页面的图片(实例代码)
2017/11/30 Python
python实现二叉查找树实例代码
2018/02/08 Python
Python线性拟合实现函数与用法示例
2018/12/13 Python
python基于pdfminer库提取pdf文字代码实例
2019/08/15 Python
python的range和linspace使用详解
2019/11/27 Python
Django视图、传参和forms验证操作
2020/07/15 Python
python生成xml时规定dtd实例方法
2020/09/21 Python
Django-celery-beat动态添加周期性任务实现过程解析
2020/11/26 Python
python实现scrapy爬虫每天定时抓取数据的示例代码
2021/01/27 Python
日本运动品牌美津浓官方购物网站:MIZUNO SHOP
2016/08/21 全球购物
欧迪办公美国官网:Office Depot
2016/08/22 全球购物
介绍一下linux的文件系统
2015/10/06 面试题
公司财务自我评价分享
2013/12/17 职场文书
环保公益广告语
2014/03/13 职场文书
2014年设计师工作总结
2014/11/25 职场文书
idea搭建可运行Servlet的Web项目
2021/06/26 Java/Android
总结python多进程multiprocessing的相关知识
2021/06/29 Python