pygame 飞机大战碰撞检查的运用(二)子弹(飞机)击中和逃逸屏幕的判断

本文介绍了如何在pygame游戏中实现子弹击中飞机的碰撞检查,利用pygame.Rect.colliderect()函数判断两个矩形对象是否发生碰撞。同时,通过与屏幕Rect的碰撞检查,判断飞机或子弹是否逃逸屏幕。只需简单的代码即可完成这些功能。
摘要由CSDN通过智能技术生成

目标:实现子弹击中飞机的碰撞检查

子弹是个矩形,飞机也是矩形,只要简单是使用pygame.Rect.colliderect()这个函数就能判断是否碰撞了。

  • pygame.Rect.colliderect()  —  检测两个 Rect 对象是否重叠,碰了返回 True,否则返回 False

假设子弹的位置 bullet_rect ,飞机的位置 plane_rect

if pygame.Rect.colliderect(bullet.rect, plane_rect):

也可以用

bullet_rect.colliderect(plane_rect)

效果是一样的。

子弹或者飞机逃逸屏幕判断,也是同样的道理,屏幕也是一个Rect,用碰撞检查下,如果没碰撞了,就是逃逸了,很简单吧。

# 用一条语句实现了跑出屏幕的检查,我真是佩服我自己

if not self.rect.colliderect(self.main_scent.get_rect()):

print(self.rect)

看电影去了,演示代码待续。

bullet.py里,加入超出屏幕的检查,超过就自动退出所有 sprite.Grout()

import pygame
import math
import random 

class Bullet(pygame.sprite.Sprite):
    def __init__(self,scene):
        pygame.sprite.Sprite.__init__(self)
        self.image = pygame.image.load('images/bullet0.png')
        sel
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值