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中的wxPython实现最基本的浏览器功能
Apr 14 Python
Python字符串、元组、列表、字典互相转换的方法
Jan 23 Python
django orm 通过related_name反向查询的方法
Dec 15 Python
Python列表与元组的异同详解
Jul 02 Python
pandas读取CSV文件时查看修改各列的数据类型格式
Jul 07 Python
Python Django 命名空间模式的实现
Aug 09 Python
在Python3 numpy中mean和average的区别详解
Aug 24 Python
使用Python函数进行模块化的实现
Nov 15 Python
使用TensorFlow搭建一个全连接神经网络教程
Feb 06 Python
Python实现AI自动抠图实例解析
Mar 05 Python
利用python查看数组中的所有元素是否相同
Jan 08 Python
Python自动化之批量处理工作簿和工作表
Jun 03 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使用memcoder将视频转成mp4格式的方法
2015/03/12 PHP
thinkPHP中钩子的使用方法实例分析
2017/11/16 PHP
PHP扩展安装方法步骤解析
2020/11/24 PHP
phpwind放自动注册方法
2006/12/02 Javascript
记录几个javascript有关的小细节
2007/04/02 Javascript
javascript 有用的脚本函数
2009/05/07 Javascript
jQuery 使用手册(七)
2009/09/23 Javascript
用js模拟JQuery的show与hide动画函数代码
2010/09/20 Javascript
使用JQuery和CSS模拟超链接的用户单击事件的实现代码
2012/05/23 Javascript
JavaScript实现在标题栏上显示当前日期的方法
2015/03/19 Javascript
JavaScript中的pow()方法使用详解
2015/06/15 Javascript
简介AngularJS中使用factory和service的方法
2015/06/17 Javascript
详解javascript实现瀑布流列式布局
2016/01/29 Javascript
Bootstrap基本插件学习笔记之标签切换(17)
2016/12/08 Javascript
深入理解vue路由的使用
2017/03/24 Javascript
vue watch深度监听对象实现数据联动效果
2018/08/16 Javascript
从零开始用webpack构建一个vue3.0项目工程的实现
2020/09/24 Javascript
快速了解python leveldb
2018/01/18 Python
Python模拟浏览器上传文件脚本的方法(Multipart/form-data格式)
2018/10/22 Python
在Python3 numpy中mean和average的区别详解
2019/08/24 Python
浅析python中while循环和for循环
2019/11/19 Python
使用Python串口实时显示数据并绘图的例子
2019/12/26 Python
python GUI库图形界面开发之PyQt5树形结构控件QTreeWidget详细使用方法与实例
2020/03/02 Python
Django 多对多字段的更新和插入数据实例
2020/03/31 Python
python保留格式汇总各部门excel内容的实现思路
2020/06/01 Python
python 用opencv实现图像修复和图像金字塔
2020/11/27 Python
python requests库的使用
2021/01/06 Python
python中threading和queue库实现多线程编程
2021/02/06 Python
HTML5边玩边学(2)基础绘图实现方法
2010/09/21 HTML / CSS
Europcar西班牙:全球汽车租赁领域的领导者
2018/09/17 全球购物
Kendra Scott官网:美国领先的时尚配饰品牌
2020/10/22 全球购物
医学毕业生自荐信
2013/10/11 职场文书
《再别康桥》教学反思
2014/02/12 职场文书
个人查摆剖析材料
2014/10/16 职场文书
JS监听Esc 键触发事键
2021/04/14 Javascript
Java中生成微信小程序太阳码的实现方案
2022/06/01 Java/Android