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 内置函数filter
Jun 01 Python
解决Django数据库makemigrations有变化但是migrate时未变动问题
May 30 Python
python分批定量读取文件内容,输出到不同文件中的方法
Dec 08 Python
对python:循环定义多个变量的实例详解
Jan 20 Python
关于不懂Chromedriver如何配置环境变量问题解决方法
Jun 12 Python
python requests抓取one推送文字和图片代码实例
Nov 04 Python
python实现简单井字棋游戏
Mar 04 Python
python如何写个俄罗斯方块
Nov 06 Python
Python实现网络聊天室的示例代码(支持多人聊天与私聊)
Jan 27 Python
python学习之panda数据分析核心支持库
May 07 Python
Python Django搭建文件下载服务器的实现
May 10 Python
windows安装python超详细图文教程
May 21 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将对象转换成数组的方法(兼容多维数组类型)
2013/06/21 PHP
PHP中上传多个文件的表单设计例子
2014/11/19 PHP
discuz图片顺序混乱解决方案
2015/07/29 PHP
php图形jpgraph操作实例分析
2017/02/22 PHP
JQuery动画和停止动画实例代码
2013/03/01 Javascript
JS实现Enter键跳转及控件获得焦点
2013/08/12 Javascript
使用jQuery将多条数据插入模态框的实现代码
2014/10/08 Javascript
探寻Javascript执行效率问题
2014/11/12 Javascript
学习使用AngularJS文件上传控件
2016/02/16 Javascript
javascript运算符语法全面概述
2016/07/14 Javascript
ajax与json 获取数据并在前台使用简单实例
2017/01/19 Javascript
利用CSS、JavaScript及Ajax实现图片预加载的三大方法
2017/01/22 Javascript
详谈js遍历集合(Array,Map,Set)
2017/04/06 Javascript
nodejs个人博客开发第四步 数据模型
2017/04/12 NodeJs
JavaScript Date对象应用实例分享
2017/10/30 Javascript
Node.js中package.json中库的版本号(~和^)
2019/04/02 Javascript
浅谈vuex为什么不建议在action中修改state
2020/02/02 Javascript
有趣的JavaScript隐式类型转换操作实例分析
2020/05/02 Javascript
vue用elementui写form表单时,在label里添加空格操作
2020/08/13 Javascript
vue 组件基础知识总结
2021/01/26 Vue.js
简单了解Python中的几种函数
2017/11/03 Python
Python中列表与元组的乘法操作示例
2018/02/10 Python
python 使用 requests 模块发送http请求 的方法
2018/12/09 Python
Python3 列表,数组,矩阵的相互转换的方法示例
2019/08/05 Python
解决Python图形界面中设置尺寸的问题
2020/03/05 Python
记录一下scrapy中settings的一些配置小结
2020/09/28 Python
Python开发.exe小工具的详细步骤
2021/01/27 Python
如何在网站上添加谷歌定位信息
2016/04/16 HTML / CSS
Timberland德国官网:靴子、鞋子、衣服、夹克及配件
2019/12/10 全球购物
玲玲的画教学反思
2014/02/04 职场文书
关于学习的演讲稿
2014/05/10 职场文书
地理科学专业自荐信
2014/09/01 职场文书
甜品店创业计划书
2014/09/21 职场文书
实验室安全管理制度
2015/08/05 职场文书
六五普法心得体会2016
2016/01/21 职场文书
MySQL命令无法输入中文问题的解决方式
2021/08/30 MySQL