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实现把xml或xsl转换为html格式
Apr 08 Python
对于Python装饰器使用的一些建议
Jun 03 Python
分享一下Python 开发者节省时间的10个方法
Oct 02 Python
python变量不能以数字打头详解
Jul 06 Python
Python pass详细介绍及实例代码
Nov 24 Python
python3 pillow生成简单验证码图片的示例
Sep 19 Python
python实现宿舍管理系统
Nov 22 Python
Python socket服务常用操作代码实例
Jun 22 Python
使用python修改文件并立即写回到原始位置操作(inplace读写)
Jun 28 Python
一个非常简单好用的Python图形界面库(PysimpleGUI)
Dec 28 Python
五分钟学会怎么用Pygame做一个简单的贪吃蛇
Jan 06 Python
Python编解码问题及文本文件处理方法详解
Jun 20 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 radio 单选框获取与保持值的实现代码
2010/05/15 PHP
php绘图之加载外部图片的方法
2015/01/24 PHP
php实现parent调用父类的构造方法与被覆写的方法
2015/02/11 PHP
推荐十款免费 WordPress 插件
2015/03/24 PHP
php性能分析之php-fpm慢执行日志slow log用法浅析
2016/10/17 PHP
javascript Array.sort() 跨浏览器下需要考虑的问题
2009/12/07 Javascript
很好用的js日历算法详细代码
2013/03/07 Javascript
jquery 清空file域示例(兼容个浏览器)
2013/10/11 Javascript
jQuery修改CSS伪元素属性的方法
2014/07/30 Javascript
JavaScript设计模式之外观模式介绍
2014/12/28 Javascript
ECMAScript 6即将带给我们新的数组操作方法前瞻
2015/01/06 Javascript
js实现点击按钮后给Div图层设置随机背景颜色的方法
2015/05/06 Javascript
js采用concat和sort将N个数组拼接起来的方法
2016/01/21 Javascript
AngularJS教程之环境设置
2016/08/16 Javascript
jquery+css3问卷答题卡翻页动画效果示例
2016/10/26 Javascript
canvas绘制七巧板
2017/02/03 Javascript
原生JS实现幻灯片
2017/02/22 Javascript
js canvas实现擦除效果示例代码
2017/04/26 Javascript
基于angular实现模拟微信小程序swiper组件
2017/06/11 Javascript
纯js实现图片匀速淡入淡出效果
2017/08/22 Javascript
d3.js实现自定义多y轴折线图的示例代码
2018/05/30 Javascript
vue-cli中安装方法(图文详细步骤)
2018/12/12 Javascript
webpack4实现不同的导出类型
2019/04/09 Javascript
了解JavaScript中let语句
2019/05/30 Javascript
Vue axios获取token临时令牌封装案例
2020/09/11 Javascript
微信小程序tab左右滑动切换功能的实现代码
2021/02/08 Javascript
Django自带的加密算法及加密模块详解
2019/12/03 Python
中国专业的综合网上购物商城:京东
2016/08/02 全球购物
网购亚洲时装、美容产品和生活百货:YesStyle
2016/09/15 全球购物
介绍一下内联、左联、右联
2013/12/31 面试题
煤矿安全承诺书
2014/05/22 职场文书
2014七年级班主任工作总结
2014/12/05 职场文书
幼儿教师师德师风自我评价
2015/03/05 职场文书
大学校园招聘会感想
2015/08/10 职场文书
英文诗歌翻译方法(赏析)
2019/08/16 职场文书
德生TECSUN S-2000使用手册文字版
2022/05/10 无线电