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 Tkinter GUI编程入门介绍
Mar 10 Python
使用Python的Flask框架实现视频的流媒体传输
Mar 31 Python
Python素数检测实例分析
Jun 15 Python
详解设计模式中的工厂方法模式在Python程序中的运用
Mar 02 Python
python基于pyDes库实现des加密的方法
Apr 29 Python
python3 中文乱码与默认编码格式设定方法
Oct 31 Python
解决Python 使用h5py加载文件,看不到keys()的问题
Feb 08 Python
python对csv文件追加写入列的方法
Aug 01 Python
Python学习笔记之lambda表达式用法详解
Aug 08 Python
python下载库的步骤方法
Oct 12 Python
使用Python paramiko模块利用多线程实现ssh并发执行操作
Dec 05 Python
python 自定义异常和主动抛出异常(raise)的操作
Dec 11 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
php设计模式 Builder(建造者模式)
2011/06/26 PHP
PHP session_start()问题解疑(详细介绍)
2013/07/05 PHP
使用PHP进行微信公众平台开发的示例
2015/08/21 PHP
8个必备的PHP功能开发
2015/10/02 PHP
让你的PHP7更快之Hugepage用法分析
2016/05/31 PHP
利用php-cli和任务计划实现刷新token功能的方法
2017/05/03 PHP
PHP PDOStatement::rowCount讲解
2019/02/01 PHP
Javascript JSQL,SQL无处不在,
2010/05/05 Javascript
13个绚丽的Jquery 界面设计网站推荐
2010/09/28 Javascript
jQuery 在光标定位的地方插入文字的插件
2012/05/10 Javascript
js加载读取内容及显示与隐藏div示例
2014/02/13 Javascript
jquery常用特效方法使用示例
2014/04/25 Javascript
JavaScript基于ajax编辑信息用法实例
2015/07/15 Javascript
Javascript编程中几种继承方式比较分析
2015/11/28 Javascript
js选择器全面解析
2016/06/27 Javascript
基于javascript实现的购物商城商品倒计时实例
2016/12/11 Javascript
nodeJS实现路由功能实例代码
2017/06/08 NodeJs
Vue 2中ref属性的使用方法及注意事项
2017/06/12 Javascript
vue+axios+mock.js环境搭建的方法步骤
2018/08/28 Javascript
如何测量vue应用运行时的性能
2019/06/21 Javascript
python实现人脸识别经典算法(一) 特征脸法
2018/03/13 Python
python如何实现内容写在图片上
2018/03/23 Python
对python中的xlsxwriter库简单分析
2018/05/04 Python
Python父目录、子目录的相互调用方法
2019/02/16 Python
Django REST framework内置路由用法
2019/07/26 Python
浅析Python迭代器的高级用法
2020/07/16 Python
mac安装python3后使用pip和pip3的区别说明
2020/09/01 Python
全球500多个机场的接送服务:Suntransfers
2019/06/03 全球购物
施华洛世奇中国官网:SWAROVSKI中国
2020/06/16 全球购物
对象的序列化(serialization)类是面向流的,应如何将对象写入到随机存取文件中
2015/06/22 面试题
公司司机岗位职责范本
2014/03/03 职场文书
2014年共青团工作总结
2014/12/10 职场文书
关于感恩的作文
2019/08/26 职场文书
CI Games宣布《堕落之王2》使用虚幻引擎5制作 预计将于2023年正式发售
2022/04/11 其他游戏
Golang 实现WebSockets
2022/04/24 Golang
python的html标准库
2022/04/29 Python