pygame游戏之旅 如何制作游戏障碍


Posted in Python onNovember 20, 2018

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

定义一个障碍模型函数:

def things(thingx, thingy, thingw, thingh, color):
 pygame.draw.rect(gameDisplay, color, [thingx, thingy, thingw, thingh])

在游戏循环中调用:

things(thing_startx, thing_starty, thing_width, thing_height, black)
thing_starty += thing_speed

障碍消失之后修改x值:

if thing_starty > display_height:
 thing_starty = 0 - thing_height
 thing_startx = random.randrange(0, display_width)

全部代码:

import pygame
import time
import random
 
pygame.init()
 
white = (255,255,255)
black = (0,0,0)
gray = (128,128,128)
red = (255,0,0)
green = (0,255,0)
blue = (0,0,255)
 
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(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, white)
 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
 
 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:
  gameExit = True
  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)
 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)
 pygame.display.update()
 clock.tick(60)
crash()
#game_loop()
pygame.quit()
quit()

结果图:

pygame游戏之旅 如何制作游戏障碍pygame游戏之旅 如何制作游戏障碍pygame游戏之旅 如何制作游戏障碍

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

Python 相关文章推荐
纯Python开发的nosql数据库CodernityDB介绍和使用实例
Oct 23 Python
python web框架学习笔记
May 03 Python
Django admin实现图书管理系统菜鸟级教程完整实例
Dec 12 Python
Sublime开发python程序的示例代码
Jan 24 Python
python八皇后问题的解决方法
Sep 27 Python
由Python编写的MySQL管理工具代码实例
Apr 09 Python
Python通用函数实现数组计算的方法
Jun 13 Python
如何在 Django 模板中输出 &quot;{{&quot;
Jan 24 Python
Python接口自动化测试的实现
Aug 28 Python
python中numpy.empty()函数实例讲解
Feb 05 Python
python 标准库原理与用法详解之os.path篇
Oct 24 Python
python实现学生信息管理系统(面向对象)
Jun 05 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
pygame实现雷电游戏雏形开发
Nov 20 #Python
pygame游戏之旅 游戏中添加显示文字
Nov 20 #Python
You might like
zf框架的registry(注册表)使用示例
2014/03/13 PHP
PHP使用imagick读取PDF生成png缩略图的两种方法
2014/03/20 PHP
php页面函数设置超时限制的方法
2014/12/01 PHP
PHP实现微信发红包程序
2015/08/24 PHP
PHP函数import_request_variables()用法分析
2016/04/02 PHP
PHP通过加锁实现并发情况下抢码功能
2016/08/10 PHP
php上传excel表格并获取数据
2017/04/27 PHP
PHP+AJAX 投票器功能
2017/11/11 PHP
javascript下判断一个对象是否具有指定名称的属性的的代码
2010/01/11 Javascript
jquery $.ajax()取xml数据的小问题解决方法
2010/11/20 Javascript
JQuery操作三大控件(下拉,单选,复选)的方法
2013/08/06 Javascript
jquery ajax实现下拉框三级无刷新联动,且保存保持选中值状态
2013/10/29 Javascript
js获取url中&quot;?&quot;后面的字串方法
2014/05/15 Javascript
jQuery与Ajax以及序列化
2016/02/01 Javascript
js判断图片加载完成后获取图片实际宽高的方法
2016/02/25 Javascript
vue2.0+webpack环境的构造过程
2016/11/08 Javascript
vue-cli+webpack项目 修改项目名称的方法
2018/02/28 Javascript
完美解决axios在ie下的兼容性问题
2018/03/05 Javascript
vue-rx的初步使用教程
2018/09/21 Javascript
Vue.js构建你的第一个包并在NPM上发布的方法步骤
2019/05/01 Javascript
详解JavaScript自定义函数
2020/07/29 Javascript
[01:24:51]2014 DOTA2华西杯精英邀请赛 5 25 LGD VS NewBee第二场
2014/05/26 DOTA
Python实现Youku视频批量下载功能
2017/03/14 Python
Python中GeoJson和bokeh-1的使用讲解
2019/01/03 Python
对DataFrame数据中的重复行,利用groupby累加合并的方法详解
2019/01/30 Python
python从子线程中获得返回值的方法
2019/01/30 Python
python解析命令行参数的三种方法详解
2019/11/29 Python
python turtle工具绘制四叶草的实例分享
2020/02/14 Python
Python使用Pyqt5实现简易浏览器(最新版本测试过)
2020/04/27 Python
汽车技术服务英文求职信范文
2014/01/02 职场文书
校园安全检查制度
2014/02/03 职场文书
本科生导师推荐信范文
2014/05/18 职场文书
人事任命书格式
2014/06/05 职场文书
卫生厅领导班子党的群众路线教育实践活动整改措施
2014/09/20 职场文书
小学秋季运动会报道稿
2014/09/30 职场文书
2015年物业公司保洁工作总结
2015/10/22 职场文书