pygame游戏之旅 添加碰撞效果的方法


Posted in Python onNovember 20, 2018

本文为大家分享了pygame游戏之旅的第7篇,供大家参考,具体内容如下

对car和障碍的宽高进行比较然后打印即可:

if y < thing_starty + thing_height:
 print('y crossover')
 if x > thing_startx and x < thing_startx + thing_width or x + car_width > thing_startx and x + car_width < thing_startx + thing_width:
 print('x crossover')
 crash()

全部代码:

import pygame
import time
import random
 
pygame.init()
 
white = (255,255,255)
black = (0,0,0)
 
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, black)
 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:
    pygame.quit()
    quit()
   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)
  if y < thing_starty + thing_height:
   print('y crossover')
   if x > thing_startx and x < thing_startx + thing_width or x + car_width > thing_startx and x + car_width < thing_startx + thing_width:
    print('x crossover')
    crash()
  pygame.display.update()
  clock.tick(60)
crash()
#game_loop()
pygame.quit()
quit()

结果图:

pygame游戏之旅 添加碰撞效果的方法pygame游戏之旅 添加碰撞效果的方法

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python基于Tkinter库实现简单文本编辑器实例
May 05 Python
Python 类与元类的深度挖掘 II【经验】
May 06 Python
windows下安装Python的XlsxWriter模块方法
May 03 Python
Python实现简单层次聚类算法以及可视化
Mar 18 Python
使用python去除图片白色像素的实例
Dec 12 Python
Python3 A*寻路算法实现方式
Dec 24 Python
基于Python执行dos命令并获取输出的结果
Dec 30 Python
详解python程序中的多任务
Sep 16 Python
python 写一个性能测试工具(一)
Oct 24 Python
Python 利用Entrez库筛选下载PubMed文献摘要的示例
Nov 24 Python
python如何实现递归转非递归
Feb 25 Python
python实现简单的聊天小程序
Jul 07 Python
pygame游戏之旅 如何制作游戏障碍
Nov 20 #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
You might like
PHP通过header实现文本文件下载的代码
2010/08/08 PHP
destoon后台网站设置变成空白的解决方法
2014/06/21 PHP
在php和MySql中计算时间差的方法详解
2015/03/27 PHP
Yii框架连接mongodb数据库的代码
2016/07/27 PHP
thinkPHP中配置的读取与C方法详解
2016/12/05 PHP
Yii 使用intervention/image拓展实现图像处理功能
2019/06/22 PHP
Laravel框架源码解析之入口文件原理分析
2020/05/14 PHP
javascript动态改变img的src属性图片不显示的解决方法
2010/10/20 Javascript
超级有用的13个基于jQuery的内容滚动插件和教程
2011/07/31 Javascript
70+漂亮且极具亲和力的导航菜单设计国外网站推荐
2011/09/20 Javascript
javascript学习笔记(十五) js间歇调用和超时调用
2012/06/20 Javascript
js中switch case循环实例代码
2013/12/30 Javascript
加随机数引入脚本不让浏览器读取缓存
2014/09/04 Javascript
基于jquery的手风琴图片展示效果实现方法
2014/12/16 Javascript
浅谈Javascript实现继承的方法
2015/07/06 Javascript
简易的JS计算器实现代码
2016/10/18 Javascript
nodejs实现连接mongodb数据库的方法示例
2018/03/15 NodeJs
jQuery插件jsonview展示json数据
2018/05/26 jQuery
详解Vue的钩子函数(路由导航守卫、keep-alive、生命周期钩子)
2018/07/24 Javascript
详解如何在微信小程序开发中正确的使用vant ui组件
2018/09/13 Javascript
详解微信小程序实现仿微信聊天界面(各种细节处理)
2019/02/17 Javascript
微信小程序实现卡片左右滑动效果的示例代码
2019/05/01 Javascript
vue项目打包为APP,静态资源正常显示,但API请求不到数据的操作
2020/09/12 Javascript
elementUI同一页面展示多个Dialog的实现
2020/11/19 Javascript
python库lxml在linux和WIN系统下的安装
2018/06/24 Python
win7下python3.6安装配置方法图文教程
2018/07/31 Python
Python 的字典(Dict)是如何存储的
2019/07/05 Python
python字符串的拼接方法总结
2019/11/18 Python
基于Python爬取搜狐证券股票过程解析
2020/11/18 Python
让IE6、IE7、IE8支持CSS3的脚本
2010/07/20 HTML / CSS
MIS软件工程师的面试题
2016/04/22 面试题
不错的求职信范文
2014/07/20 职场文书
求职简历自荐信怎么写
2015/03/26 职场文书
跳高加油稿
2015/07/21 职场文书
SpringBoot2零基础到精通之数据与页面响应
2022/03/22 Java/Android
《游戏王:大师决斗》将推出新卡牌包4月4日上线
2022/03/31 其他游戏