1.准备图片(可以替换)
2.python Pygame类
class Ls(pygame.sprite.Sprite):
def __init__(self,pos):#pos 鼠标点击的位置
super().__init__()
self.image = pygame.image.load('ji.png')
self.dx2=self.dx = r.randint(20,500)
self.image = pygame.transform.scale(self.image,(self.dx,self.dx2))
self.rect = self.image.get_rect()
self.rect.top = pos[0]
self.rect.left =pos[1]
self.vx = r.randint(5,30)
self.vy = r.randint(5,30)
下面的代码也是Ls类里面的,作用是判断是否碰到边缘,如果碰到边缘大小减小,如果我们的大小为零或者负数,把这个对象删除
def update(self):
self.rect.left += self.vx
self.rect.top += self.vy
a = r.randint(5,50)
if self.rect.left <= 0 or self.rect.left >= 800-self.dx:
self.vx = -self.vx
self.dx-=a
self.dx2-=a
if self.rect.top <= 0 or self.rect.top >= 600-self.dx2:
self.vy = -self.vy
self.dx-=a
self.dx2-=a
if (self.dx2 > 1 and self.dx > 1):
self.image = pygame.transform.scale(self.image,(self.dx,self.dx2))
else:
self.kill()
3.主体循环
group = pygame.sprite.Group()
while True:
pm.fill((120,205,255))
zt = pygame.mouse.get_pressed()
zy = pygame.font.Font('方正黑体简体.ttf',50).render('左键增加滚轮碰到哪个哪个删除 ',True,(0,0,0))
pm.blit(zy,(0,0))
if zt[0]:
group.add(Ls([100,200]))
if zt[1]:
wz = pygame.mouse.get_pos()
for i in group:
if i.rect.collidepoint(wz): #给定点是否在给定矩形范围中,前面的是给定矩形,括号中的是点.
i.kill()
group.draw(pm)
group.update()
for event in pygame.event.get():
if event.type == pygame.QUIT:
exit()
pygame.display.update()
pygame.time.Clock().tick(20)