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利用Beautiful Soup模块修改内容方法示例
Mar 27 Python
python使用tcp实现局域网内文件传输
Mar 20 Python
python实现对输入的密文加密
Mar 20 Python
解决yum对python依赖版本问题
Jul 05 Python
python numpy之np.random的随机数函数使用介绍
Oct 06 Python
Python实现socket非阻塞通讯功能示例
Nov 06 Python
Python 基于FIR实现Hilbert滤波器求信号包络详解
Feb 26 Python
Python sorted排序方法如何实现
Mar 31 Python
python thrift 实现 单端口多服务的过程
Jun 08 Python
最新版 Windows10上安装Python 3.8.5的步骤详解
Nov 28 Python
Django数据统计功能count()的使用
Nov 30 Python
用python 绘制茎叶图和复合饼图
Feb 26 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
变量在 PHP7 内部的实现(一)
2015/12/21 PHP
Centos 6.5下PHP 5.3安装ffmpeg扩展的步骤详解
2017/03/02 PHP
PHP PDOStatement::bindValue讲解
2019/01/30 PHP
动态样式类封装JS代码
2009/09/02 Javascript
IE浏览器打印的页眉页脚设置解决方法
2009/12/08 Javascript
初学Jquery插件制作 在SageCRM的查询屏幕隐藏部分行的功能
2011/12/26 Javascript
jquery.pagination.js 无刷新分页实现步骤分享
2012/05/23 Javascript
javascript图像处理—仿射变换深度理解
2013/01/16 Javascript
jQuery标签替换函数replaceWith()的使用例子
2014/08/28 Javascript
javascript实现的网站访问量统计代码
2015/12/20 Javascript
浅谈JS继承_寄生式继承 &amp; 寄生组合式继承
2016/08/16 Javascript
微信小程序loading组件显示载入动画用法示例【附源码下载】
2017/12/09 Javascript
Vue中v-for的数据分组实例
2018/03/07 Javascript
微信小程序在ios下Echarts图表不能滑动的问题解决
2019/07/10 Javascript
小程序中使用css var变量(使js可以动态设置css样式属性)
2020/03/31 Javascript
解决vue net :ERR_CONNECTION_REFUSED报错问题
2020/08/13 Javascript
js实现类选择器和name属性选择器的示例步骤
2021/02/07 Javascript
[03:57]2016完美“圣”典风云人物:rOtk专访
2016/12/09 DOTA
使用相同的Apache实例来运行Django和Media文件
2015/07/22 Python
Python实现PS滤镜碎片特效功能示例
2018/01/24 Python
Tensorflow 训练自己的数据集将数据直接导入到内存
2018/06/19 Python
python中ASCII码字符与int之间的转换方法
2018/07/09 Python
详解windows python3.7安装numpy问题的解决方法
2018/08/13 Python
详解如何减少python内存的消耗
2019/08/09 Python
Python爬虫实现“盗取”微信好友信息的方法分析
2019/09/16 Python
基于Python实现人脸自动戴口罩系统
2020/02/06 Python
高中三年学习生活的自我评价
2013/10/10 职场文书
高中毕业生的个人自我评价
2014/02/21 职场文书
大学优秀班主任事迹材料
2014/05/02 职场文书
员工生日活动方案
2014/08/24 职场文书
中学生民族团结演讲稿
2014/08/27 职场文书
科级干部群众路线教育实践活动个人对照检查材料
2014/09/19 职场文书
质监局领导班子对照检查材料思想汇报
2014/09/27 职场文书
2014年个人工作总结模板
2014/12/15 职场文书
2014年社区工会工作总结
2014/12/18 职场文书
Python线程池与GIL全局锁实现抽奖小案例
2022/04/13 Python