pygame没法直接画扇形,可以画弧线并是令线宽等于半径间接画扇形。
基本思路如下:
- 画扇形建立类,并继承精灵类pygame.sprite.Sprite
- 长、宽分别等于两倍半径实例化Surface
- 根据Surface实例创建rect
- 根据Surface实例创建mask
- 实现扇形的draw方法
- 用pygame.sprite.collide_mask(A,B)进行碰撞检测
- 在调用pygame.display.update()之间,调用扇形的draw方法
代码如下:
import pygame
class Circle(pygame.sprite.Sprite):
def __init__(self, pos, color, radius, width):
super().__init__()
self.image = pygame.Surface((100, 100)) # 创建1个32X32的Surface实例image
self.image.set_colorkey((1, 2, 3)) # 设置image中颜色(1,2,3)的颜色为透明色
self.image.fill((1, 2, 3)) # 底色为黑色,由于上条,底色变为透明
self.radius = radius
self.width = width
pygame.draw.circle(self.image, pygame.Color(color), (50, 50), self.radius,</