鼠标单击后从屏幕上删除 pygame sprite [重复]

Posted

技术标签:

【中文标题】鼠标单击后从屏幕上删除 pygame sprite [重复]【英文标题】:Removing a pygame sprite from the screen after mouse click [duplicate] 【发布时间】:2021-12-12 20:43:09 【问题描述】:

我开始制作 pygame 原型。每 30 帧应在随机位置生成正方形。然后,用光标单击正方形后,正方形应消失,您将获得一分。我能够制作正方形的生成器,但我被点击并消失了。我尝试在 update() 方法中使用 self.kill() 方法,但由于某种原因它不适用于我的光标碰撞检测。你能帮忙吗?如果可以,请发送完整代码,我的项目中可能有一些我没有注意到的愚蠢错误。谢谢! 代码:

import pygame
pygame.init()
screen=pygame.display.set_mode((800,600))
class Enemy(pygame.sprite.Sprite):
    def __init__(self,x,y):
        super().__init__()
        self.image=pygame.Surface((10,10))
        self.image.fill('Yellow')
        self.rect=self.image.get_rect(topleft=(x,y))
    def update(self):
        self.remove(enemy)
        return 0
enemy=pygame.sprite.Group()
enemy.add(Enemy(1,1))
pygame.display.update()
enemy.draw(screen)
while True:
    pygame.display.update()
    for event in pygame.event.get():
        if event.type==pygame.QUIT:
            pygame.quit()
            exit()

    enemy.update()

【问题讨论】:

请提供足够的代码,以便其他人更好地理解或重现问题。 【参考方案1】:

我有个主意。您只需将精灵移出屏幕,例如pygame.draw.rect(9999,9999,width,height) 或者你可以填满屏幕?我还没有。

【讨论】:

我正在尝试这样做,以便以后可以导入图像,但这是个好主意,我会尝试在此基础上做一些事情。 好的:/随便。

以上是关于鼠标单击后从屏幕上删除 pygame sprite [重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何检测何时单击矩形对象、图像或精灵

pygame 的精灵使用

以一定速度在屏幕上移动对象。(Sprite Kit)

飞机大战代码-plane_sprites

浅谈pygame.sprite的精灵碰撞

pygame-KidsCanCode系列jumpy-part5-屏幕滚动