如何使用python_pygame设计一个接鸡蛋游戏

先上示例图

直接上代码,关于图片的素材自己记得替换,如果代码看不太懂的话,可以看教学视频

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)

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值