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中wx将图标显示在右下角的脚本代码
Mar 08 Python
python调用机器喇叭发出蜂鸣声(Beep)的方法
Mar 23 Python
在Python中使用正则表达式的方法
Aug 13 Python
浅谈Python 对象内存占用
Jul 15 Python
Win10下Python环境搭建与配置教程
Nov 18 Python
Python中pandas dataframe删除一行或一列:drop函数详解
Jul 03 Python
python实现简单加密解密机制
Mar 19 Python
python 计算平均平方误差(MSE)的实例
Jun 29 Python
python使用sklearn实现决策树的方法示例
Sep 12 Python
Python实现钉钉订阅消息功能
Jan 14 Python
python四种出行路线规划的实现
Jun 23 Python
Python学习之时间包使用教程详解
Mar 21 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实现异步调用方法研究与分享
2011/10/27 PHP
PHP抓屏函数实现屏幕快照代码分享
2014/01/02 PHP
在php和MySql中计算时间差的方法详解
2015/03/27 PHP
PHP编程入门的基本语法知识点总结
2016/01/26 PHP
PHP基于自定义函数实现的汉字转拼音功能实例
2017/09/30 PHP
浅析onsubmit校验表单时利用ajax的return false无效问题
2013/07/10 Javascript
Javascript全局变量var与不var的区别深入解析
2013/12/09 Javascript
javascript表单验证使用示例(javascript验证邮箱)
2014/01/07 Javascript
js 针对html DOM元素操作等经验累积
2014/03/11 Javascript
js实现网页右上角滑出会自动消失大幅广告的方法
2015/02/27 Javascript
php常见的页面跳转方法汇总
2015/04/15 Javascript
微信开发 使用picker封装省市区三级联动模板
2016/10/28 Javascript
详解vue+css3做交互特效的方法
2017/11/20 Javascript
在vue项目中使用sass的配置方法
2018/03/20 Javascript
js中el表达式的使用和非空判断方法
2018/03/28 Javascript
Bootstrap导航菜单点击后无法自动添加active的处理方法
2018/08/10 Javascript
JS与jQuery判断文本框还剩多少字符可以输入的方法
2018/09/01 jQuery
利用JS动态生成隔行换色HTML表格的两种方法
2018/10/09 Javascript
Three.JS实现三维场景
2018/12/30 Javascript
vue 2.5.1 源码学习 之Vue.extend 和 data的合并策略
2019/06/04 Javascript
JS实现分页导航效果
2020/02/19 Javascript
[33:42]LGD vs OG 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
Python编程对列表中字典元素进行排序的方法详解
2017/05/26 Python
Python列表list解析操作示例【整数操作、字符操作、矩阵操作】
2017/07/25 Python
Python 循环语句之 while,for语句详解
2018/04/23 Python
Python实现的堆排序算法示例
2018/04/29 Python
python使用pygame框架实现推箱子游戏
2018/11/20 Python
解决安装python3.7.4报错Can''t connect to HTTPS URL because the SSL module is not available
2019/07/31 Python
Python实现多线程下载脚本的示例代码
2020/04/03 Python
Python嵌入C/C++进行开发详解
2020/06/09 Python
重构Python代码的六个实例
2020/11/25 Python
Agoda.com官方网站:便宜预订全球酒店,高达80%的折扣
2018/04/04 全球购物
Maisons du Monde德国:法国家具和装饰的市场领导者
2019/07/26 全球购物
工作人员思想汇报
2014/01/09 职场文书
优秀体育委员自荐书
2014/01/31 职场文书
2015年感恩节活动总结
2015/03/24 职场文书