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基于右递归解决八皇后问题的方法
May 25 Python
Python基础中所出现的异常报错总结
Nov 19 Python
python 平衡二叉树实现代码示例
Jul 07 Python
用pandas中的DataFrame时选取行或列的方法
Jul 11 Python
selenium+python自动化测试之鼠标和键盘事件
Jan 23 Python
python下载微信公众号相关文章
Feb 26 Python
python获取点击的坐标画图形的方法
Jul 09 Python
python实现连连看辅助之图像识别延伸
Jul 17 Python
Python中函数的返回值示例浅析
Aug 28 Python
解决TensorFlow模型恢复报错的问题
Feb 06 Python
Python操作Jira库常用方法解析
Apr 10 Python
python3读取文件指定行的三种方法
May 24 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远程连接MYSQL数据库非常慢的解决方法
2008/07/05 PHP
PHP上传Excel文件导入数据到MySQL数据库示例
2016/10/25 PHP
php实现数据库的增删改查
2017/02/26 PHP
PHP小程序支付功能完整版【基于thinkPHP】
2019/03/26 PHP
js 复制或插入Html的实现方法小结
2010/05/19 Javascript
window.location.hash 使用说明
2010/11/08 Javascript
关于jquery ajax 调用带参数的webservice返回XML数据一个小细节
2012/07/31 Javascript
javascript真的不难-回顾一下基础知识
2013/01/15 Javascript
js捕获鼠标右键菜单中的粘帖事件实现代码
2013/04/01 Javascript
js函数返回多个返回值的示例代码
2013/11/05 Javascript
JS实现合并两个数组并去除重复项只留一个的方法
2015/12/17 Javascript
JS实现点击事件统计的简单实例
2016/07/10 Javascript
javascript中this关键字详解
2016/12/12 Javascript
Vue和React组件之间的传值方式详解
2019/01/31 Javascript
JavaScript碎片—函数闭包(模拟面向对象)
2019/03/13 Javascript
Angular2实现的秒表及改良版示例
2019/05/10 Javascript
深入解析koa之异步回调处理
2019/06/17 Javascript
三步实现ionic3点击退出app程序
2019/09/17 Javascript
jquery实现淡入淡出轮播图效果
2020/12/13 jQuery
vue+elementUI动态增加表单项并添加验证的代码详解
2020/12/17 Vue.js
[50:20]DOTA2上海特级锦标赛主赛事日 - 5 总决赛Liquid VS Secret第四局
2016/03/06 DOTA
python备份文件以及mysql数据库的脚本代码
2013/06/10 Python
python映射列表实例分析
2015/01/26 Python
详解Python的Flask框架中生成SECRET_KEY密钥的方法
2016/06/07 Python
Python实现FTP上传文件或文件夹实例(递归)
2017/01/16 Python
python中enumerate() 与zip()函数的使用比较实例分析
2019/09/03 Python
Python线程协作threading.Condition实现过程解析
2020/03/12 Python
python语音识别指南终极版(有这一篇足矣)
2020/09/09 Python
Coach澳大利亚官方网站:美国著名时尚奢侈品牌
2017/05/24 全球购物
高三语文教学反思
2014/01/15 职场文书
物业保安岗位职责
2014/07/02 职场文书
计算机网络专业自荐信
2014/07/04 职场文书
高中生毕业评语
2014/12/30 职场文书
2015年行政人事部工作总结
2015/05/13 职场文书
用人单位的规章制度,怎样制定才是有效的?
2019/07/09 职场文书
「天才王子的赤字国家重生术」妮妮姆·拉雷粘土人开订
2022/03/21 日漫