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 布尔操作实现代码
Mar 23 Python
python中的字典详细介绍
Sep 18 Python
跟老齐学Python之for循环语句
Oct 02 Python
Python装饰器语法糖
Jan 02 Python
Python图像处理之图像的读取、显示与保存操作【测试可用】
Jan 04 Python
python使用MQTT给硬件传输图片的实现方法
May 05 Python
解决Jupyter Notebook使用parser.parse_args出现错误问题
Apr 20 Python
如何基于python把文字图片写入word文档
Jul 31 Python
在 Python 中使用 MQTT的方法
Aug 18 Python
详解python对象之间的交互
Sep 29 Python
python+flask编写一个简单的登录接口
Nov 13 Python
python和Appium的移动端多设备自动化测试框架
Apr 26 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去除字符串中空字符的常用方法小结
2015/03/17 PHP
PHP版本常用的排序算法汇总
2015/12/20 PHP
php解析xml 的四种简单方法(附实例)
2016/07/11 PHP
详解Yii实现分页的两种方法
2017/01/14 PHP
PHP使用curl_multi_select解决curl_multi网页假死问题的方法
2018/08/15 PHP
baidu博客的编辑友情链接的新的层窗口!经典~支持【FF】
2007/02/09 Javascript
Jquery之美中不足小结
2011/02/16 Javascript
读jQuery之八 包装事件对象
2011/06/21 Javascript
文本框只能选择数据到文本框禁止手动输入
2013/11/22 Javascript
jquery实现效果比较好的table选中行颜色
2014/03/25 Javascript
自己封装的javascript事件队列函数版
2014/06/12 Javascript
Nodejs学习笔记之NET模块
2015/01/13 NodeJs
jQuery+pjax简单示例汇总
2017/04/21 jQuery
JS简单实现滑动加载数据的方法示例
2017/10/18 Javascript
微信小程序使用picker实现时间和日期选择框功能【附源码下载】
2017/12/11 Javascript
python3 shelve模块的详解
2017/07/08 Python
ubuntu16.04制作vim和python3的开发环境
2018/09/23 Python
Python3 全自动更新已安装的模块实现
2020/01/06 Python
Python编程快速上手——选择性拷贝操作案例分析
2020/02/28 Python
Python使用xlrd实现读取合并单元格
2020/07/09 Python
numpy中生成随机数的几种常用函数(小结)
2020/08/18 Python
html5使用canvas绘制文字特效
2014/12/15 HTML / CSS
美国老牌主机服务商:iPage
2016/07/22 全球购物
英国日常交易网站:Wowcher
2018/09/04 全球购物
俄语地区最大的中国商品在线购物网站之一:Umka Mall
2019/11/03 全球购物
考博自荐信
2013/10/25 职场文书
个人简历自我评价范文
2014/02/04 职场文书
信息专业学生学习的自我评价
2014/02/17 职场文书
入党积极分子自我鉴定
2014/02/18 职场文书
运动会入场口号
2014/06/07 职场文书
诉讼授权委托书范本
2014/10/05 职场文书
公司感恩节活动策划书
2014/10/11 职场文书
《猴王出世》教学反思
2016/02/23 职场文书
加薪申请书应该这样写!
2019/07/04 职场文书
只用Python就可以制作的简单词云
2021/06/07 Python
MySQL如何解决幻读问题
2021/08/07 MySQL