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获取当前用户的主目录路径方法(推荐)
Jan 12 Python
python pandas dataframe 按列或者按行合并的方法
Apr 12 Python
Python实现自定义顺序、排列写入数据到Excel的方法
Apr 23 Python
python利用wx实现界面按钮和按钮监听和字体改变的方法
Jul 17 Python
python 动态迁移solr数据过程解析
Sep 04 Python
Python爬虫实现“盗取”微信好友信息的方法分析
Sep 16 Python
Python中*args和**kwargs的区别详解
Sep 17 Python
.dcm格式文件软件读取及python处理详解
Jan 16 Python
Python Flask上下文管理机制实例解析
Mar 16 Python
python使用OpenCV模块实现图像的融合示例代码
Apr 10 Python
pandas中read_csv、rolling、expanding用法详解
Apr 21 Python
Python中的协程(Coroutine)操作模块(greenlet、gevent)
May 30 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 中的批处理的实现
2007/06/14 PHP
解决MySQL中文输出变成问号的问题
2008/06/05 PHP
php插入中文到sqlserver 2008里出现乱码的解决办法分享
2012/07/19 PHP
php 模拟POST提交的2种方法详解
2013/06/17 PHP
php有效防止图片盗用、盗链的两种方法
2016/11/01 PHP
ThinkPHP+EasyUI之ComboTree中的会计科目树形菜单实现方法
2017/06/09 PHP
在javascript将NodeList作为Array数组处理的方法
2010/07/09 Javascript
获取css样式表内样式的js函数currentStyle(IE),defaultView(FF)
2011/02/14 Javascript
JavaScript实现列出数组中最长的连续数
2014/12/29 Javascript
js制作网站首页图片轮播特效代码
2016/08/30 Javascript
Angular2生命周期钩子函数的详细介绍
2017/07/10 Javascript
node中modules.exports与exports导出的区别
2018/06/08 Javascript
详解js 创建对象的几种方法
2019/03/08 Javascript
JavaScript碰撞检测原理及其实现代码
2020/03/12 Javascript
vscode调试node.js的实现方法
2020/03/22 Javascript
JavaScript array常用方法代码实例详解
2020/09/02 Javascript
vue实现图书管理系统
2020/12/29 Vue.js
Python的装饰器模式与面向切面编程详解
2015/06/21 Python
Python实现带百分比的进度条
2016/06/28 Python
Tensorflow 同时载入多个模型的实例讲解
2018/07/27 Python
python针对不定分隔符切割提取字符串的方法
2018/10/26 Python
深入了解和应用Python 装饰器 @decorator
2019/04/02 Python
flask框架蓝图和子域名配置详解
2020/01/25 Python
浅谈python之自动化运维(Paramiko)
2020/01/31 Python
python使用梯度下降算法实现一个多线性回归
2020/03/24 Python
解决flask接口返回的内容中文乱码的问题
2020/04/03 Python
利用纯CSS3实现文字向右循环闪过效果实例(可用于移动端)
2017/06/15 HTML / CSS
美国著名的女性内衣零售商:Frederick’s of Hollywood
2018/02/24 全球购物
终端业务员岗位职责
2013/11/27 职场文书
校园十大歌手策划书
2014/02/01 职场文书
媒矿安全生产承诺书
2014/05/23 职场文书
班级文化标语
2014/06/23 职场文书
医院我们的节日活动实施方案
2014/08/22 职场文书
党员民主生活会个人整改措施材料
2014/09/16 职场文书
行政执法队伍作风整顿个人剖析材料
2014/10/11 职场文书
请病假条范文
2015/08/17 职场文书