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开发vim插件及心得分享
Nov 04 Python
Python装饰器原理与简单用法实例分析
Apr 29 Python
Python使用itertools模块实现排列组合功能示例
Jul 02 Python
python之cv2与图像的载入、显示和保存实例
Dec 05 Python
Python逐行读取文件中内容的简单方法
Feb 26 Python
python 使用装饰器并记录log的示例代码
Jul 12 Python
深入解析神经网络从原理到实现
Jul 26 Python
Pytorch: 自定义网络层实例
Jan 07 Python
python 图像判断,清晰度(明暗),彩色与黑白实例
Jun 04 Python
python 模拟登陆github的示例
Dec 04 Python
python 如何用terminal输入参数
May 25 Python
Python requests用法和django后台处理详解
Mar 19 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
SWFUpload与CI不能正确上传识别文件MIME类型解决方法分享
2011/04/18 PHP
用来解析.htgroup文件的PHP类
2012/09/05 PHP
利用浏览器的Javascript控制台调试PHP程序
2014/01/08 PHP
php下载文件源代码(强制任意文件格式下载)
2014/05/09 PHP
PHP中提问频率最高的11个面试题和答案
2014/09/02 PHP
浅谈PHP正则表达式中修饰符/i, /is, /s, /isU
2014/10/21 PHP
JavaScript 学习笔记(十一)
2010/01/19 Javascript
JS实现一个按钮的方法
2015/02/05 Javascript
基于jQuery.Hz2Py.js插件实现的汉字转拼音特效
2015/05/07 Javascript
javascript编写贪吃蛇游戏
2015/07/07 Javascript
jQuery插件EasyUI校验规则 validatebox验证框
2015/11/29 Javascript
jQuery的选择器中的通配符[id^='code']或[name^='code']及jquery选择器总结
2015/12/24 Javascript
学习JavaScript设计模式之享元模式
2016/01/18 Javascript
Bootstrap每天必学之警告框插件
2016/04/26 Javascript
jQuery包裹节点用法完整示例
2016/09/13 Javascript
jquery+ajax实现省市区三级联动效果简单示例
2017/01/04 Javascript
js实现瀑布流效果(自动生成新的内容)
2017/03/16 Javascript
jQuery树插件zTree使用方法详解
2017/05/02 jQuery
AngularJS通过ng-Img-Crop实现头像截取的示例
2017/08/17 Javascript
vue2.0 和 animate.css的结合使用
2017/12/12 Javascript
Javascript的console['']常用输入方法汇总
2018/04/26 Javascript
Vuex模块化应用实践示例
2020/02/03 Javascript
在windows下快速搭建web.py开发框架方法
2016/04/22 Python
详解使用python crontab设置linux定时任务
2016/12/08 Python
Python使用pydub库对mp3与wav格式进行互转的方法
2019/01/10 Python
.dcm格式文件软件读取及python处理详解
2020/01/16 Python
python实现逆滤波与维纳滤波示例
2020/02/26 Python
keras 解决加载lstm+crf模型出错的问题
2020/06/10 Python
viagogo英国票务平台:演唱会、体育比赛、戏剧门票
2017/03/24 全球购物
Vrbo西班牙:预订您的度假公寓(公寓、乡村房屋…)
2020/04/27 全球购物
数学教学随笔感言
2014/02/17 职场文书
2014高考励志标语
2014/06/05 职场文书
助人为乐好少年事迹材料
2014/08/18 职场文书
小学教师师德师风个人整改措施
2014/09/18 职场文书
房产公证书
2015/01/23 职场文书
上帝也疯狂观后感
2015/06/09 职场文书