当前位置:首页 > 抖音自媒体 > 正文内容

初始化Pygame

admin2个月前 (02-13)抖音自媒体37

游戏效果

  • 蓝色球球跟随鼠标移动
  • 红色爱心随机分布在屏幕上
  • 碰到爱心后得分,爱心重新随机位置
  • 左上角显示当前分数

代码实现

import pygame
import random
pygame.init()
# 游戏常量设置
WIDTH, HEIGHT = 800, 600
SCREEN = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("球球刷爱心")
# 颜色定义
WHITE = (255, 255, 255)
BLUE = (0, 128, 255)
PINK = (255, 50, 100)
# 物体大小
BALL_RADIUS = 30
HEART_SIZE = 40
# 字体设置
FONT = pygame.font.SysFont(None, 48)
class Ball:
    """控制球球的类"""
    def __init__(self):
        self.x = WIDTH // 2
        self.y = HEIGHT // 2
        self.radius = BALL_RADIUS
        self.color = BLUE
    def update(self):
        """跟随鼠标更新位置"""
        self.x, self.y = pygame.mouse.get_pos()
        # 防止球球超出屏幕边界
        self.x = max(self.radius, min(self.x, WIDTH - self.radius))
        self.y = max(self.radius, min(self.y, HEIGHT - self.radius))
    def draw(self):
        """绘制球球"""
        pygame.draw.circle(SCREEN, self.color, (self.x, self.y), self.radius)
    def get_collision_rect(self):
        """获取碰撞检测用的矩形"""
        return pygame.Rect(self.x - self.radius, self.y - self.radius, 
                          self.radius*2, self.radius*2)
class Heart:
    """控制爱心的类"""
    def __init__(self):
        self.reset()
        self.size = HEART_SIZE
        self.color = PINK
    def reset(self):
        """随机生成爱心位置"""
        self.x = random.randint(self.size//2, WIDTH - self.size//2)
        self.y = random.randint(self.size//2, HEIGHT - self.size//2)
    def draw(self):
        """绘制爱心形状"""
        points = [
            (self.x, self.y - self.size//4),          # 顶部
            (self.x + self.size//2, self.y + self.size//4),  # 右下方
            (self.x, self.y + self.size//2),          # 底部
            (self.x - self.size//2, self.y + self.size//4)   # 左下方
        ]
        pygame.draw.polygon(SCREEN, self.color, points)
    def get_collision_rect(self):
        """获取碰撞检测用的矩形"""
        return pygame.Rect(
            self.x - self.size//2, 
            self.y - self.size//4, 
            self.size, 
            self.size//2 + self.size//4
        )
def main():
    """游戏主函数"""
    clock = pygame.time.Clock()
    ball = Ball()
    hearts = [Heart() for _ in range(5)]  # 生成5个爱心
    score = 0
    running = True
    while running:
        # 填充背景色
        SCREEN.fill(WHITE)
        # 处理事件
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                running = False
        # 更新球球位置
        ball.update()
        # 碰撞检测与得分
        ball_rect = ball.get_collision_rect()
        for heart in hearts:
            if ball_rect.colliderect(heart.get_collision_rect()):
                score += 1
                heart.reset()
        # 绘制所有元素
        ball.draw()
        for heart in hearts:
            heart.draw()
        # 显示分数
        score_text = FONT.render(f"Score: {score}", True, (0,0,0))
        SCREEN.blit(score_text, (10, 10))
        # 更新屏幕
        pygame.display.flip()
        clock.tick(60)  # 控制帧率
    pygame.quit()
if __name__ == "__main__":
    main()

运行说明

  1. 首先确保已安装Pygame库:pip install pygame
  2. 运行代码后,移动鼠标控制蓝色球球
  3. 碰到红色爱心即可得分,爱心会自动重新出现在随机位置
  4. 点击窗口关闭按钮退出游戏

这个游戏简单易玩,适合作为入门级Python游戏项目,你可以根据需求扩展功能(如添加时间限制、难度递增、音效等)。

初始化Pygame

标签: 初始化Pygame

相关文章

刷抖音粉丝的真相与方法

刷抖音粉丝的真相与方法

在当今社交媒体盛行的时代,抖音成为了众多用户展示自我和获取关注的热门平台,许多人都希望能够在抖音上拥有大量的粉丝,以提高自己的影响力和知名度,刷抖音粉丝这个话题便应运而生。 刷抖音粉丝,就是通过...

抖音一元100粉丝背后的真相

抖音一元100粉丝背后的真相

在当今的社交媒体时代,抖音无疑是最热门的平台之一,拥有庞大的用户群体和无限的商业潜力,许多人都渴望在抖音上快速积累粉丝,以提升自己的影响力和实现各种目标,而市场上也出现了一些声称可以一元购买100粉丝...

了解快手刷点赞代刷网的真相

了解快手刷点赞代刷网的真相

在当今的社交媒体时代,快手等短视频平台受到了众多用户的喜爱,而在这个过程中,出现了一些所谓的快手刷点赞代刷网。 快手刷点赞代刷网声称可以帮助用户快速增加快手作品的点赞数量,从而提升作品的热度和曝...

抖音UP代刷的真相与影响

抖音UP代刷的真相与影响

在当今的社交媒体时代,抖音已成为众多用户展示自我和获取关注的热门平台,随着其影响力的不断扩大,一种名为抖音UP代刷的现象也悄然兴起。 抖音UP代刷,就是通过一些非官方渠道,利用特定的技术手段或服...

快手代刷网小熊,你需要了解的那些事

快手代刷网小熊,你需要了解的那些事

在当今的社交媒体时代,快手成为了众多用户展示自我、分享生活的热门平台,而在快手的生态中,出现了一种名为快手代刷网小熊的现象。 快手代刷网小熊声称可以为用户提供一系列的快手数据提升服务,比如增加粉...

快手粉丝代刷网真的便宜吗?

快手粉丝代刷网真的便宜吗?

在当今的社交媒体时代,快手作为一款热门的短视频平台,拥有大量的用户,许多人都希望在快手上拥有更多的粉丝,以提高自己的影响力和知名度,一些所谓的快手粉丝代刷网应运而生,并且声称价格便宜,能快速为用户增加...