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获取文件版本信息、公司名和产品名的方法
Oct 05 Python
python实现装饰器、描述符
Feb 28 Python
Linux下python3.7.0安装教程
Jul 30 Python
Python3 关于pycharm自动导入包快捷设置的方法
Jan 16 Python
在numpy矩阵中令小于0的元素改为0的实例
Jan 26 Python
Python之lambda匿名函数及map和filter的用法
Mar 05 Python
python实现得到当前登录用户信息的方法
Jun 21 Python
python GUI库图形界面开发之PyQt5布局控件QGridLayout详细使用方法与实例
Mar 06 Python
Python Dict找出value大于某值或key大于某值的所有项方式
Jun 05 Python
Python结合Window计划任务监测邮件的示例代码
Aug 05 Python
删除pycharm鼠标右键快捷键打开项目的操作
Jan 16 Python
python中time.ctime()实例用法
Feb 03 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
Classes and Objects in PHP5-面向对象编程 [1]
2006/10/09 PHP
自己写的php curl库实现整站克隆功能
2015/02/12 PHP
php选择排序法实现数组排序实例分析
2015/02/16 PHP
[原创]PHP实现逐行删除文件右侧空格的方法
2015/12/25 PHP
CI(Codeigniter)的Setting增强配置类实例
2016/01/06 PHP
Yii2简单实现多语言配置的方法
2016/07/23 PHP
js实现运行代码需要刷新的解决方法
2007/08/18 Javascript
YUI 读码日记之 YAHOO.util.Dom - Part.1
2008/03/22 Javascript
自写的一个jQuery圆角插件
2010/10/26 Javascript
jQuery计算textarea中文字数(剩余个数)的小程序
2013/11/28 Javascript
jQuery过滤HTML标签并高亮显示关键字的方法
2015/08/07 Javascript
小白谈谈对JS原型链的理解
2016/05/03 Javascript
javascript实现简易计算器的代码
2016/05/31 Javascript
简单实现js页面切换功能
2021/01/10 Javascript
jQuery调用Webservice传递json数组的方法
2016/08/06 Javascript
在windows上用nodejs搭建静态文件服务器的简单方法
2016/08/11 NodeJs
解析JavaScript实现DDoS攻击原理与保护措施
2016/12/26 Javascript
微信小程序 实战实例开发流程详细介绍
2017/01/05 Javascript
JQuery EasyUI 结合ztrIee的后台页面开发实例
2017/09/01 jQuery
基于js 字符串indexof与search方法的区别(详解)
2017/12/04 Javascript
如何用RxJS实现Redux Form
2018/12/29 Javascript
Vue3.x源码调试的实现方法
2019/10/13 Javascript
分享Angular http interceptors 拦截器使用(推荐)
2019/11/10 Javascript
vue 组件间的通信之子组件向父组件传值的方式
2020/07/29 Javascript
python3.6使用urllib完成下载的实例
2018/12/19 Python
Python进阶之全面解读高级特性之切片
2019/02/19 Python
使用PYTHON解析Wireshark的PCAP文件方法
2019/07/23 Python
python实现的config文件读写功能示例
2019/09/24 Python
html5 Canvas画图教程(9)—canvas中画出矩形和圆形
2013/01/09 HTML / CSS
建筑专业自荐信范文
2014/01/05 职场文书
老龄工作先进事迹
2014/08/15 职场文书
幸福中国演讲稿
2014/09/12 职场文书
学校党风廉政建设调研报告
2015/01/01 职场文书
2015年行风建设工作总结
2015/05/15 职场文书
劳动合同变更协议书范本
2019/04/18 职场文书
python3中apply函数和lambda函数的使用详解
2022/02/28 Python