Pygame,试图擦除精灵
Pygame, trying to erase sprite
我正在制作一个 pygame 应用程序
有了这个应用程序,我可以用鼠标右键单击在屏幕周围放置蓝点。
鼠标中键本应擦除所有点,但此功能不起作用....
有什么想法吗?
# -*- coding: utf-8 -*-
import pygame
from pygame.locals import *
def func_circle(x,y):
cercle=pygame.sprite.Sprite()
pygame.sprite.Sprite.__init__(cercle)
cercle.image=pygame.Surface((500,500))
cercle.image.fill((0,0,0))
cercle.image.set_colorkey((0,0,0))
pygame.draw.circle(cercle.image,(0,0,255),(cercle.image.get_rect().centerx,cercle.image.get_rect().centery),25,0)
cercle.image.convert_alpha()
cercle.rect=cercle.image.get_rect()
cercle.rect.centerx=x
cercle.rect.centery=y
return cercle
pygame.init()
fenetre = pygame.display.set_mode((640, 480))
background = pygame.Surface(fenetre.get_size())
background = background.convert()
background.fill((250, 250, 250))
liste_des_sprites = pygame.sprite.LayeredUpdates()
continuer = 1
while continuer:
for event in pygame.event.get():
if event.type==MOUSEBUTTONDOWN and event.button==3:
my_cicle=func_circle( event.pos[0],event.pos[1])
liste_des_sprites.add(my_cicle)
if event.type==MOUSEBUTTONDOWN and event.button==2:
print "trying to erase the blue dot"
my_cicle.kill()
liste_des_sprites.empty()
if event.type==QUIT:
continuer=0
liste_des_sprites.draw(fenetre)
pygame.display.update()
您必须清除屏幕 - 例如用黑色填充它
fenetre.fill( (0,0,0) ) # clear screen
liste_des_sprites.draw(fenetre) # draw circles again
pygame.display.update() # send screen on monitor
或绘制背景以移除旧元素。
fenetre.blit( background, (0,0) ) # blit background to clear screen
liste_des_sprites.draw(fenetre) # draw circles again
pygame.display.update() # send screen on monitor
我正在制作一个 pygame 应用程序
有了这个应用程序,我可以用鼠标右键单击在屏幕周围放置蓝点。
鼠标中键本应擦除所有点,但此功能不起作用....
有什么想法吗?
# -*- coding: utf-8 -*-
import pygame
from pygame.locals import *
def func_circle(x,y):
cercle=pygame.sprite.Sprite()
pygame.sprite.Sprite.__init__(cercle)
cercle.image=pygame.Surface((500,500))
cercle.image.fill((0,0,0))
cercle.image.set_colorkey((0,0,0))
pygame.draw.circle(cercle.image,(0,0,255),(cercle.image.get_rect().centerx,cercle.image.get_rect().centery),25,0)
cercle.image.convert_alpha()
cercle.rect=cercle.image.get_rect()
cercle.rect.centerx=x
cercle.rect.centery=y
return cercle
pygame.init()
fenetre = pygame.display.set_mode((640, 480))
background = pygame.Surface(fenetre.get_size())
background = background.convert()
background.fill((250, 250, 250))
liste_des_sprites = pygame.sprite.LayeredUpdates()
continuer = 1
while continuer:
for event in pygame.event.get():
if event.type==MOUSEBUTTONDOWN and event.button==3:
my_cicle=func_circle( event.pos[0],event.pos[1])
liste_des_sprites.add(my_cicle)
if event.type==MOUSEBUTTONDOWN and event.button==2:
print "trying to erase the blue dot"
my_cicle.kill()
liste_des_sprites.empty()
if event.type==QUIT:
continuer=0
liste_des_sprites.draw(fenetre)
pygame.display.update()
您必须清除屏幕 - 例如用黑色填充它
fenetre.fill( (0,0,0) ) # clear screen
liste_des_sprites.draw(fenetre) # draw circles again
pygame.display.update() # send screen on monitor
或绘制背景以移除旧元素。
fenetre.blit( background, (0,0) ) # blit background to clear screen
liste_des_sprites.draw(fenetre) # draw circles again
pygame.display.update() # send screen on monitor