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中的Classes和Metaclasses详解
Apr 02 Python
使用Python对MySQL数据操作
Apr 06 Python
python绘制简单折线图代码示例
Dec 19 Python
python模块smtplib学习
May 22 Python
python使用magic模块进行文件类型识别方法
Dec 08 Python
Django uwsgi Nginx 的生产环境部署详解
Feb 02 Python
利用Python检测URL状态
Jul 31 Python
Django接收照片储存文件的实例代码
Mar 07 Python
关于Python 中的时间处理包datetime和arrow的方法详解
Mar 19 Python
Python unittest单元测试openpyxl实现过程解析
May 27 Python
python中HTMLParser模块知识点总结
Jan 25 Python
Python实战之大鱼吃小鱼游戏的实现
Apr 01 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代码
2010/02/16 PHP
解析ajax事件的调用顺序
2013/06/17 PHP
PHP多线程之内部多线程实例分析
2015/03/09 PHP
php的4种常见运行方式
2015/03/20 PHP
浅谈PHP中output_buffering
2015/07/13 PHP
PHP浮点比较大小的方法
2016/02/14 PHP
Laravel实现自定义错误输出内容的方法
2016/10/10 PHP
用Javascript做flash做的事..才完成的一个类.Auntion Action var 0.1
2007/02/23 Javascript
超轻量级的基于jquery的三级展开列表
2011/04/26 Javascript
js根据鼠标移动速度背景图片自动旋转的方法
2015/02/28 Javascript
js 连续赋值的简单实现
2016/06/13 Javascript
Angular和Vue双向数据绑定的实现原理(重点是vue的双向绑定)
2016/11/22 Javascript
ECMAScript6 新特性范例大全
2017/03/24 Javascript
详解nodejs中express搭建权限管理系统
2017/09/15 NodeJs
30分钟快速入门掌握ES6/ES2015的核心内容(下)
2018/04/18 Javascript
基于jquery实现左右上下移动效果
2018/05/02 jQuery
使用vue-cli(vue脚手架)快速搭建项目的方法
2018/05/21 Javascript
使用jquery模拟a标签的click事件无法实现跳转的解决
2018/12/04 jQuery
[01:03:09]完美世界DOTA2联赛PWL S2 Forest vs SZ 第二场 11.25
2020/11/26 DOTA
python基础教程之常用运算符
2014/08/29 Python
快速查询Python文档方法分享
2017/12/27 Python
python多进程使用及线程池的使用方法代码详解
2018/10/24 Python
对Python生成汉字字库文字,以及转换为文字图片的实例详解
2019/01/29 Python
Python读取Pickle文件信息并计算与当前时间间隔的方法分析
2019/01/30 Python
python重试装饰器的简单实现方法
2019/01/31 Python
python模块之subprocess模块级方法的使用
2019/03/26 Python
小白教你PyCharm从下载到安装再到科学使用PyCharm2020最新激活码
2020/09/25 Python
Python根据URL地址下载文件并保存至对应目录的实现
2020/11/15 Python
PyCharm Community安装与配置的详细教程
2020/11/24 Python
Python+unittest+DDT实现数据驱动测试
2020/11/30 Python
学校与家长安全责任书
2014/07/23 职场文书
师德师风整改措施
2014/10/24 职场文书
Redis中一个String类型引发的惨案
2021/07/25 Redis
聊聊Python String型列表求最值的问题
2022/01/18 Python
SQL使用复合索引实现数据库查询的优化
2022/05/25 SQL Server
GoFrame基于性能测试得知grpool使用场景
2022/06/21 Golang