微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在Pygame中多次渲染图像

如何解决如何在Pygame中多次渲染图像

我正在用python做井字游戏。如果您单击游戏内的特定正方形,则x图像应被变白到屏幕上。我通过使用pygame.MOUSEBUTTONDOWN并指定了坐标来做到这一点。当我单击一个正方形时,图像会在屏幕上变白。问题是,当我单击另一个正方形时,另一个x在该正方形中被遮住,但另一个正方形中的x消失了。这是代码

snapshot.data[key]

解决方法

创建一个指定矩形区域的列表:

rect_range = [
    (250,300,250,199),(301,351,249,201),(351,399,(251,301,310,252),(303,(353,400,312,250),372,314),(302,350,313),(352,369,310)]

使用属性rectclicked创建一个类:

class MyRect:
    def __init__(self,x1,x2,y2,y1):
        self.rect = pygame.Rect(x1+1,y1+1,x2-x1-1,y2-y1-1)
        self.clicked = False

创建对象列表:

rectObjects = [MyRect(*rr) for rr in rect_range]

测试是否在循环中单击矩形:

for event in pygame.event.get():
    # [...]

    if event.type == pygame.MOUSEBUTTONDOWN:
        for rectObj in rectObjects:
            if rectObj.rect.collidepoint(event.pos):
                rectObj.clicked = True

循环绘制对象:

for rectObj in rectObjects:
    if rectObj.clicked:
        screen.blit(x,rectObj.rect)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。