先上示例图
直接上代码,关于图片的素材自己记得替换,如果代码看不太懂的话,可以看教学视频
import pygame
clock = pygame.time.Clock()
import random
pygame.init()
SCREEN = pygame.display.set_mode((960, 590))
fenshu = pygame.font.SysFont("微软雅黑", 80)
new_fenshu = fenshu.render("score:", True, (0, 0, 0))
#render(text, antialias, color, background=None) -> Surface
#这将创建一个新的 Surface,其上呈现了指定的文本。pygame 没有提供直接在现有 Surface
# 上绘制文本的方法:相反,您必须使用Font.render()来创建文本的图像(Surface),
# 然后将该图像 blit 到另一个 Surface 上。
pygame.mixer.Sound('滑稽.mp3').play(-1) # 0为只播放一次
class BackGround():
def __init__(self):
self.image = pygame.image.load('背景1.png')
def draw(self):
SCREEN.blit(self.image, (0, 0))
class Basket(pygame.sprite.Sprite):
def __init__(self):
pygame.sprite.Sprite.__init__(self)
self.image = pygame.image.load('basket.png')
self.new_image = pygame.transform.rotozoom(self.image,0,0.5)
self.rect = self.new_image.get_rect(center=(960/2,500))
def event_watch(self):
for event in pygame.event.get():
if event.type == pygame.QUIT:
exit()
keys_pressed = pygame.key.get_pressed()
if keys_pressed[pygame.K_RIGHT]:
self.rect.x += 3
if keys_pressed[pygame.K_LEFT]:
self.rect.x -= 3
if keys_pressed[pygame.K_DOWN]:
self.rect.y += 3
if keys_pressed[pygame.K_UP]:
self.rect.y -= 3
SCREEN.blit(self.new_image, self.rect)
def basket_draw(self):
SCREEN.blit(new_fenshu,(80,150))
SCREEN.blit(self.new_image,self.rect)
x = 80
a = 0
eggs_group = pygame.sprite.Group()
class Eggs(pygame.sprite.Sprite):
def __init__(self):
global x
pygame.sprite.Sprite.__init__(self)
self.image = pygame.image.load('eggs.png')
self.new_image = pygame.transform.rotozoom(self.image,0,0.3)
self.rect = self.new_image.get_rect(center = (x,120))
eggs_group.add(self)
print(len(eggs_group))
x += 160
def update(self):
global a
self.rect.y += random.randint(1,4)
if self.rect.y >= 500:
print(self.rect.y)
self.rect.y = 120
if self.rect.colliderect(basket.rect):
pygame.mixer.Sound('弹出.mp3').play(0)
a += 1
self.rect.y = 120
else:
new_number = fenshu.render(str(a), True, (0, 0, 0))
SCREEN.blit(new_number, (250, 150))
SCREEN.blit(self.new_image, self.rect)
def draw(self):
eggs_group.update()
back = BackGround()
basket = Basket()
egg = Eggs()
egg = Eggs()
egg = Eggs()
egg = Eggs()
egg = Eggs()
egg = Eggs()
while True:
back.draw()
basket.basket_draw()
basket.event_watch()
egg.draw()
pygame.display.update()
clock.tick(60)