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列表操作实例
Jan 14 Python
使用python实现rsa算法代码
Feb 17 Python
Django 2.0版本的新特性抢先看!
Jan 05 Python
python使用tensorflow保存、加载和使用模型的方法
Jan 31 Python
解决Python requests库编码 socks5代理的问题
May 07 Python
Python使用googletrans报错的解决方法
Sep 25 Python
基于Python安装pyecharts所遇的问题及解决方法
Aug 12 Python
Python 余弦相似度与皮尔逊相关系数 计算实例
Dec 23 Python
TensorFlow2.X使用图片制作简单的数据集训练模型
Apr 08 Python
PyCharm中如何直接使用Anaconda已安装的库
May 28 Python
python+playwright微软自动化工具的使用
Feb 02 Python
python 求两个向量的顺时针夹角操作
Mar 04 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 中的str_replace 函数总结
2007/04/27 PHP
PHP 设置MySQL连接字符集的方法
2011/01/02 PHP
php UBB 解析实现代码
2011/11/27 PHP
php ZipArchive压缩函数详解实例
2013/11/06 PHP
php延迟静态绑定实例分析
2015/02/08 PHP
PHP获取Exif缩略图的方法
2015/07/13 PHP
PHP实现对二维数组某个键排序的方法
2016/09/14 PHP
yii 2.0中表单小部件的使用方法示例
2017/05/23 PHP
PHP5.5基于mysqli连接MySQL数据库和读取数据操作实例详解
2019/02/16 PHP
window.parent调用父框架时 ie跟火狐不兼容问题
2009/07/30 Javascript
JavaScript DOM学习第四章 getElementByTagNames
2010/02/19 Javascript
js数组操作学习总结
2013/11/04 Javascript
javascript实现获取浏览器版本、浏览器类型
2015/12/02 Javascript
JavaScript必看小技巧(必看)
2016/06/07 Javascript
jQuery自制提示框tooltip改进版
2016/08/01 Javascript
JavaScript实现广告弹窗效果
2016/08/09 Javascript
老生常谈JavaScript中的this关键字
2016/10/01 Javascript
webuploader模态框ueditor显示问题解决方法
2016/12/27 Javascript
认识jQuery的Promise的具体使用方法
2017/10/10 jQuery
对VUE中的对象添加属性
2018/09/18 Javascript
JS数组实现分类统计实例代码
2018/09/30 Javascript
基于JavaScript实现每日签到打卡轨迹功能
2018/11/29 Javascript
python如何在终端里面显示一张图片
2016/08/17 Python
python添加模块搜索路径方法
2017/09/11 Python
在python tkinter中Canvas实现进度条显示的方法
2019/06/14 Python
深入了解Django中间件及其方法
2019/07/26 Python
CSS的background属性及CSS3的背景图片设置总结
2016/06/13 HTML / CSS
德国亚马逊官方网站:Amazon.de
2020/11/15 全球购物
幼儿教师考核制度
2014/01/25 职场文书
离婚协议书范本样本
2014/08/19 职场文书
2015年党员公开承诺书范文
2015/01/22 职场文书
人事聘任通知
2015/04/21 职场文书
升职感谢领导的话语及升职感谢信
2019/06/24 职场文书
导游词之杭州西湖
2019/09/19 职场文书
浅谈Go语言多态的实现与interface使用
2021/06/16 Golang
SQL实现LeetCode(180.连续的数字)
2021/08/04 MySQL