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处理文本文件并生成指定格式的文件
Jul 31 Python
python实现ping的方法
Jul 06 Python
深入浅析ImageMagick命令执行漏洞
Oct 11 Python
Python爬虫之xlml解析库(全面了解)
Aug 08 Python
python thrift搭建服务端和客户端测试程序
Jan 17 Python
python实现word 2007文档转换为pdf文件
Mar 15 Python
Python实现修改文件内容的方法分析
Mar 25 Python
pytorch 把MNIST数据集转换成图片和txt的方法
May 20 Python
Python3+Pycharm+PyQt5环境搭建步骤图文详解
May 29 Python
PyQt5基本控件使用之消息弹出、用户输入、文件对话框的使用方法
Aug 06 Python
Django 拆分model和view的实现方法
Aug 16 Python
python GUI库图形界面开发之PyQt5布局控件QVBoxLayout详细使用方法与实例
Mar 06 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
PHP 错误之引号中使用变量
2009/05/04 PHP
php session安全问题分析
2011/06/24 PHP
php字符串替换函数substr_replace()用法实例
2015/03/17 PHP
PHP有序表查找之二分查找(折半查找)算法示例
2018/02/09 PHP
PHP实现新型冠状病毒疫情实时图的实例
2020/02/04 PHP
Webkit的跨域安全问题说明
2011/09/13 Javascript
js数组操作常用方法
2014/05/08 Javascript
js通过location.search来获取页面传来的参数
2014/09/11 Javascript
jquery实现图片上传之前预览的方法
2015/07/11 Javascript
JavaScript编程中布尔对象的基本使用
2015/10/25 Javascript
详解JavaScript基本类型和引用类型
2015/12/09 Javascript
设置点击文本框或图片弹出日历控件的实现代码
2016/05/12 Javascript
JS简单获取客户端IP地址的方法【调用搜狐接口】
2016/09/05 Javascript
javascript宿主对象之window.navigator详解
2016/09/07 Javascript
nodejs中全局变量的实例解析
2017/03/07 NodeJs
JS触摸与手势事件详解
2017/05/09 Javascript
React native ListView 增加顶部下拉刷新和底下点击刷新示例
2018/04/27 Javascript
微信小程序日历/日期选择插件使用方法详解
2018/12/28 Javascript
layui自定义验证,用ajax查询后台是否有重复数据,form.verify的例子
2019/09/06 Javascript
微信小程序中网络请求缓存的解决方法
2019/12/29 Javascript
Vuex的API文档说明详解
2020/02/05 Javascript
简单的编程0基础下Python入门指引
2015/04/01 Python
如何运行.ipynb文件的图文讲解
2019/06/27 Python
Python Numpy库常见用法入门教程
2020/01/16 Python
使用CSS3来匹配横屏竖屏的简单方法
2015/08/04 HTML / CSS
在HTML5中使用MathML数学公式的简单讲解
2016/02/19 HTML / CSS
英国现代家具和照明购物网站:Heal’s
2019/10/30 全球购物
如何获取某个日期是当月的最后一天
2013/12/05 面试题
现在输入n个数字,以逗号,分开;然后可选择升或者降序排序;按提交键就在另一页面显示按什么排序,结果为,提供reset
2012/11/09 面试题
银行个人求职自荐信范文
2013/12/16 职场文书
违反学校规定检讨书
2014/01/18 职场文书
2014年个人教学工作总结
2014/12/09 职场文书
新闻稿件写作范文
2015/07/18 职场文书
MySQL8.0.24版本Release Note的一些改进点
2021/04/22 MySQL
详解GaussDB for MySQL性能优化
2021/05/18 MySQL
SpringBoot系列之MongoDB Aggregations用法详解
2022/02/12 MongoDB