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中下划线的使用方法
Mar 27 Python
详解Python函数作用域的LEGB顺序
May 14 Python
python 获取文件下所有文件或目录os.walk()的实例
Apr 23 Python
解决django前后端分离csrf验证的问题
Feb 03 Python
Python PyQt5 Pycharm 环境搭建及配置详解(图文教程)
Jul 16 Python
python学生信息管理系统实现代码
Dec 17 Python
Python字典添加,删除,查询等相关操作方法详解
Feb 07 Python
Python 调用有道翻译接口实现翻译
Mar 02 Python
2020最新pycharm汉化安装(python工程狮亲测有效)
Apr 26 Python
python基于socket模拟实现ssh远程执行命令
Dec 05 Python
PyQt实现计数器的方法示例
Jan 18 Python
python基础之模块的导入
Oct 24 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获取163、gmail、126等邮箱联系人地址【已测试2009.10.10】
2009/10/11 PHP
有关JSON以及JSON在PHP中的应用
2010/04/09 PHP
ajax+php打造进度条代码[readyState各状态说明]
2010/04/12 PHP
PHP中使用Session配合Javascript实现文件上传进度条功能
2014/10/15 PHP
PHP输出一个等腰三角形的方法
2015/05/12 PHP
PHP的RSA加密解密方法以及开发接口使用
2018/02/11 PHP
分享几种好用的PHP自定义加密函数(可逆/不可逆)
2020/09/15 PHP
tbody元素支持嵌套的注意方法
2007/03/24 Javascript
表单项的name命名为submit、reset引起的问题
2007/12/22 Javascript
自定义ExtJS控件之下拉树和下拉表格附源码
2013/10/15 Javascript
随鼠标上下滚动的jquery代码
2013/12/05 Javascript
jQuery中.live()方法的用法深入解析
2013/12/30 Javascript
基于JQuery实现的Select级联
2014/01/27 Javascript
javascript中加号(+)操作符的一些神奇作用
2014/06/06 Javascript
JavaScript判断浏览器类型的方法
2015/02/10 Javascript
详解JavaScript对象序列化
2016/01/19 Javascript
修改jquery中dialog的title属性方法(推荐)
2016/08/26 Javascript
简单理解vue中track-by属性
2016/10/26 Javascript
Sequelize中用group by进行分组聚合查询
2016/12/12 Javascript
JavaScript和JQuery获取DIV值的方法示例
2017/03/07 Javascript
详解axios 全攻略之基本介绍与使用(GET 与 POST)
2017/09/15 Javascript
javaScript 连接打印机,打印小票的实例
2017/12/29 Javascript
element ui 对话框el-dialog关闭事件详解
2018/02/26 Javascript
vue工程全局设置ajax的等待动效的方法
2019/02/22 Javascript
vue实现扫码功能
2020/01/17 Javascript
vant中的toast层级改变操作
2020/11/04 Javascript
使用Python脚本来控制Windows Azure的简单教程
2015/04/16 Python
Python按行读取文件的实现方法【小文件和大文件读取】
2016/09/19 Python
Python 爬虫学习笔记之多线程爬虫
2016/09/21 Python
用 Python 连接 MySQL 的几种方式详解
2018/04/04 Python
Python 解决火狐浏览器不弹出下载框直接下载的问题
2020/03/09 Python
如何利用input事件来监听移动端的输入
2016/04/15 HTML / CSS
美国休闲服装品牌:J.Crew Factory
2017/03/04 全球购物
可持续未来的时尚基础:Alternative Apparel
2019/05/06 全球购物
领导干部作风建设自查报告
2014/10/23 职场文书
小学庆六一主持词
2015/06/30 职场文书