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爬虫之抓取百度贴吧并存储到本地txt文件改进版
Nov 06 Python
使用beaker让Facebook的Bottle框架支持session功能
Apr 23 Python
Python中的多行注释文档编写风格汇总
Jun 16 Python
详谈python read readline readlines的区别
Sep 22 Python
Tensorflow之构建自己的图片数据集TFrecords的方法
Feb 07 Python
Python实现二维数组输出为图片
Apr 03 Python
Python unittest 简单实现参数化的方法
Nov 30 Python
python中报错&quot;json.decoder.JSONDecodeError: Expecting value:&quot;的解决
Apr 29 Python
搞清楚 Python traceback的具体使用方法
May 13 Python
python tkinter canvas 显示图片的示例
Jun 13 Python
From CSV to SQLite3 by python 导入csv到sqlite实例
Feb 14 Python
浅谈keras.callbacks设置模型保存策略
Jun 18 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
磨咖啡豆的密诀
2021/03/03 冲泡冲煮
smarty简单应用实例
2015/11/03 PHP
PHP实现支付宝即时到账功能
2016/12/21 PHP
php实现的表单验证类完整示例
2019/08/13 PHP
新手常遇到的一些jquery问题整理
2010/08/16 Javascript
基于jquery的跨域调用文件
2010/11/19 Javascript
兼容IE、FireFox、Chrome等浏览器的xml处理函数js代码
2011/11/30 Javascript
Three.js源码阅读笔记(基础的核心Core对象)
2012/12/27 Javascript
cookie 最近浏览记录(中文escape转码)具体实现
2013/06/08 Javascript
jquery动态增加删除表格行的小例子
2013/11/14 Javascript
JavaScript将字符串转换为整数的方法
2015/04/14 Javascript
Vue.js 表单校验插件
2016/08/14 Javascript
vue.js初学入门教程(2)
2016/11/07 Javascript
jQuery动态增减行的实例代码解析(推荐)
2016/12/05 Javascript
详解angularjs中的隔离作用域理解以及绑定策略
2017/05/31 Javascript
JS声明对象时属性名加引号与不加引号的问题及解决方法
2018/02/16 Javascript
Angularjs 根据一个select的值去设置另一个select的值方法
2018/08/13 Javascript
vue基础之data存储数据及v-for循环用法示例
2019/03/08 Javascript
一文秒懂nodejs中的异步编程
2021/01/28 NodeJs
python高级特性和高阶函数及使用详解
2018/10/17 Python
Opencv+Python 色彩通道拆分及合并的示例
2018/12/08 Python
Django如何开发简单的查询接口详解
2019/05/17 Python
pycharm开发一个简单界面和通用mvc模板(操作方法图解)
2020/05/27 Python
基于Canvas+Vue的弹幕组件的实现
2019/07/23 HTML / CSS
浅析图片上传及canvas压缩的流程
2020/06/10 HTML / CSS
Bally澳大利亚官网:瑞士奢侈品牌
2018/11/01 全球购物
德国高尔夫商店:Golfshop.de
2019/06/22 全球购物
日本最大化妆品和美容产品的综合口碑网站:cosme shopping
2019/08/28 全球购物
护士实习鉴定范文
2013/12/22 职场文书
优秀毕业生事迹材料
2014/02/12 职场文书
求职自荐信的格式
2014/04/07 职场文书
学生检讨书怎么写
2014/10/09 职场文书
民事诉讼代理授权委托书
2014/10/11 职场文书
小学一年级学生评语大全
2014/12/25 职场文书
绍兴鲁迅故居导游词
2015/02/09 职场文书
一篇文章带你复习java知识点
2021/06/28 Java/Android