pygame游戏之旅 添加游戏介绍


Posted in Python onNovember 20, 2018

本文为大家分享了pygame游戏之旅的第9篇,供大家参考,具体内容如下

在游戏开始之前定义一个函数,用来显示游戏介绍:

def game_intro():
  intro = True
  while intro:
    for event in pygame.event.get():
      print(event)
      if event.type == pygame.QUIT:
        pygame.quit()
        quit()
    gameDisplay.fill(white)
    largeText = pygame.font.Font('freesansbold.ttf',115)
    TextSurf, TextRect = text_objects('A bit Racey', largeText)
    TextRect.center = ((display_width/2),(display_height/2))
    gameDisplay.blit(TextSurf, TextRect)
    pygame.display.update()
    clock.tick(15)

全部代码:

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_intro():
  intro = True
  while intro:
    for event in pygame.event.get():
      print(event)
      if event.type == pygame.QUIT:
        pygame.quit()
        quit()
    gameDisplay.fill(white)
    largeText = pygame.font.Font('freesansbold.ttf',115)
    TextSurf, TextRect = text_objects('A bit Racey', largeText)
    TextRect.center = ((display_width/2),(display_height/2))
    gameDisplay.blit(TextSurf, TextRect)
    pygame.display.update()
    clock.tick(15)
 
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_intro()
game_loop()
pygame.quit()
quit()

结果图:

pygame游戏之旅 添加游戏介绍

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。<

Python 相关文章推荐
Python实现115网盘自动下载的方法
Sep 30 Python
将Python中的数据存储到系统本地的简单方法
Apr 11 Python
用Python操作字符串之rindex()方法的使用
May 19 Python
在Django中创建URLconf相关的通用视图的方法
Jul 20 Python
解决python文件字符串转列表时遇到空行的问题
Jul 09 Python
python生成密码字典的方法
Jul 06 Python
从请求到响应过程中django都做了哪些处理
Aug 01 Python
python MultipartEncoder传输zip文件实例
Apr 07 Python
python 双循环遍历list 变量判断代码
May 04 Python
tensorflow模型的save与restore,及checkpoint中读取变量方式
May 26 Python
Python如何实现自带HTTP文件传输服务
Jul 08 Python
Python线程池与GIL全局锁实现抽奖小案例
Apr 13 Python
pygame游戏之旅 计算游戏中躲过的障碍数量
Nov 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
You might like
PHP开发框架总结收藏
2008/04/24 PHP
php rsa加密解密使用详解
2015/01/14 PHP
php使用curl打开https网站的方法
2015/06/17 PHP
表单提交错误后返回内容消失问题的解决方法(PHP网站)
2015/10/20 PHP
Laravel Intervention/image图片处理扩展包的安装、使用与可能遇到的坑详解
2017/11/14 PHP
PHP常见的序列化与反序列化操作实例分析
2019/10/28 PHP
PHP实现计算器小功能
2020/08/28 PHP
Jquery插件之打造自定义的select标签
2011/11/30 Javascript
js操作label给label赋值及取label的值示例
2013/11/07 Javascript
js 判断控件获得焦点的示例代码
2014/03/04 Javascript
ActiveX控件与Javascript之间的交互示例
2014/06/04 Javascript
用JavaScript实现使用鼠标画线的示例代码
2014/08/19 Javascript
jquery 设置style:display的方法
2015/01/29 Javascript
jQuery简单实现禁用右键菜单
2015/03/10 Javascript
Jquery插件easyUi实现表单验证示例
2015/12/15 Javascript
jQuery中Ajax全局事件引用方式及各个事件(全局/局部)执行顺序
2016/06/02 Javascript
使用BootStrap实现用户登录界面UI
2016/08/10 Javascript
jQuery弹出下拉列表插件(实现kindeditor的@功能)
2016/08/16 Javascript
jQuery实现select模糊查询(反射机制)
2017/01/14 Javascript
Vue.js学习之过滤器详解
2017/01/22 Javascript
js实现股票实时刷新数据案例
2017/05/14 Javascript
Vue cli+mui 区域滚动的实例代码
2018/01/25 Javascript
springMvc 前端用json的方式向后台传递对象数组方法
2018/08/07 Javascript
JavaScript设计模式之观察者模式与发布订阅模式详解
2020/05/07 Javascript
ES6中的Javascript解构的实现
2020/10/30 Javascript
[46:43]DOTA2上海特级锦标赛主赛事日 - 1 胜者组第一轮#2LGD VS MVP.Phx第二局
2016/03/02 DOTA
[36:05]DOTA2亚洲邀请赛 3.31 小组赛 A组 Liquid vs Optic
2018/04/01 DOTA
关于Python中Inf与Nan的判断问题详解
2017/02/08 Python
Python对列表中的各项进行关联详解
2017/08/15 Python
基于Python+Appium实现京东双十一自动领金币功能
2019/10/31 Python
纯css3使用vw和vh实现自适应的方法
2018/02/09 HTML / CSS
Interrail法国:乘火车探索欧洲,最受欢迎的欧洲铁路通票
2019/08/27 全球购物
实习生自我鉴定范文
2013/12/05 职场文书
车间组长岗位职责
2013/12/20 职场文书
主要负责人任命书
2014/06/06 职场文书
带你了解Java中的ForkJoin
2022/04/28 Java/Android