当前位置:   article > 正文

12.7pygame游戏开发框架(7):碰撞检测_pygame.sprite.collidepoint

pygame.sprite.collidepoint

@概述

  • pygame中的碰撞检测有两种;
  • 一种是矩形区域的碰撞检测,API是:rect.collidepoint(position)返回True时代表position左边在rect的范围内;
  • 另一种是非透明区域的碰撞检测,API是pygame.sprite.spritecollide(msprite,mgroup,False,pygame.sprite.collide_mask),这一种是检测msprite有没有和mgroup中的任意一个精灵发生碰撞,返回mgroup中与msprite发生碰撞的精灵列表,False代表碰撞后列表中的精灵不从mgroup中进行移除,反之则移除,最后一个参数是碰撞检测算法,最常用的就是非透明区域碰撞检测算法pygame.sprite.collide_mask,这需要待检测的双方精灵声明非透明区域的范围:self.mask = pygame.mask.from_surface(self.mSurface),当且仅当双方的非透明区域发生重叠是才视为碰撞发生;

@矩形区域的碰撞检测

  • 这里如果用户在英雄的矩形区域内点击鼠标,控制台会输出“别摸我”;
# 感应和处理鼠标事件
if event.type == pygame.MOUSEBUTTONDOWN:
    # print("MOUSEBUTTONDOWN @ ", 
  • 1
  • 2
  • 3
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/244375
推荐阅读
相关标签
  

闽ICP备14008679号