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中的私有属性
Aug 21 Python
Python中计算三角函数之cos()方法的使用简介
May 15 Python
Python自动化运维和部署项目工具Fabric使用实例
Sep 18 Python
详解pyqt5 动画在QThread线程中无法运行问题
May 05 Python
Python实现爬虫抓取与读写、追加到excel文件操作示例
Jun 27 Python
python 实现12bit灰度图像映射到8bit显示的方法
Jul 08 Python
Python Django 实现简单注册功能过程详解
Jul 29 Python
Ubuntu下Python+Flask分分钟搭建自己的服务器教程
Nov 19 Python
查看端口并杀进程python脚本代码
Dec 17 Python
kafka监控获取指定topic的消息总量示例
Dec 23 Python
python绘图subplots函数使用模板的示例代码
Apr 30 Python
Python中的 Set 与 dict
Mar 13 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+MySQL的聊天室设计
2006/10/09 PHP
理解php Hash函数,增强密码安全
2011/02/25 PHP
php 中文字符串首字母的获取函数分享
2013/11/04 PHP
浅析application/x-www-form-urlencoded和multipart/form-data的区别
2014/06/22 PHP
php禁止直接从浏览器输入地址访问.php文件的方法
2014/11/04 PHP
php图片添加文字水印实现代码
2016/03/15 PHP
PHP实现的分页类定义与用法示例
2017/07/05 PHP
文本加密解密
2006/06/23 Javascript
pjblog修改技巧汇总
2007/03/12 Javascript
全面解析Bootstrap表单使用方法(表单按钮)
2015/11/24 Javascript
js判断输入字符串是否为空、空格、null的方法总结
2016/06/14 Javascript
前端程序员必须知道的高性能Javascript知识
2016/08/24 Javascript
servlet+jquery实现文件上传进度条示例代码
2017/01/25 Javascript
JS中利用localStorage防止页面动态添加数据刷新后数据丢失
2017/03/10 Javascript
通过button将form表单的数据提交到action层的实例
2017/09/08 Javascript
基于cropper.js封装vue实现在线图片裁剪组件功能
2018/03/01 Javascript
vue 实现axios拦截、页面跳转和token 验证
2018/07/17 Javascript
在Web关闭页面时发送Ajax请求的实现方法
2019/03/07 Javascript
vue中的过滤器及其时间格式化问题
2020/04/09 Javascript
基于Echarts图表在div动态切换时不显示的解决方式
2020/07/20 Javascript
vue切换菜单取消未完成接口请求的案例
2020/11/13 Javascript
[01:29]2014DOTA2展望TI 剑指西雅图DK战队专访
2014/06/30 DOTA
[06:43]DAC2018 4.5 SOLO赛 Maybe vs Paparazi
2018/04/06 DOTA
2款Python内存检测工具介绍和使用方法
2014/06/01 Python
Python爬虫之pandas基本安装与使用方法示例
2018/08/08 Python
python制作mysql数据迁移脚本
2019/01/01 Python
佳能英国官方网站:Canon UK
2017/08/08 全球购物
温泉秘密:Onsen Secret
2020/07/06 全球购物
求职自荐信范文格式
2013/11/29 职场文书
高中生职业生涯规划书
2014/02/24 职场文书
商业房地产广告语
2014/03/13 职场文书
卫生系统先进事迹
2014/05/13 职场文书
2014年国庆节演讲稿
2014/09/19 职场文书
2016廉洁从政心得体会
2016/01/19 职场文书
初中体育课教学反思
2016/02/16 职场文书
Mongodb 迁移数据块的流程介绍分析
2022/04/18 MongoDB