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

初始化Pygame

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

游戏效果

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

代码实现

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

相关文章

抖音代刷,真相与影响

抖音代刷,真相与影响

在当今社交媒体盛行的时代,抖音作为一款极具影响力的短视频平台,吸引了无数用户的参与和关注,而在这个过程中,抖音代刷的现象也悄然兴起。 抖音代刷指的是通过一些非官方渠道的手段,人为地增加抖音账号的...

抖音速刷网,真相与影响

抖音速刷网,真相与影响

在当今社交媒体盛行的时代,抖音无疑是其中的佼佼者,吸引了数以亿计的用户,随着抖音的火爆,一些所谓的抖音速刷网也悄然出现,引发了广泛的关注和讨论。 抖音速刷网声称可以帮助用户快速增加抖音视频的点赞...

快手网页代刷网的真相

快手网页代刷网的真相

在当今的互联网世界中,快手网页代刷网成为了一个备受关注的话题,许多人对其充满了好奇,想知道它究竟是怎么一回事。 快手网页代刷网声称可以帮助用户快速提升快手账号的各种数据,如点赞数、粉丝量、播放量...

快手作品刷赞网址代刷的真相

快手作品刷赞网址代刷的真相

在快手这个热门的短视频平台上,许多创作者都希望自己的作品能获得更多的点赞,以提高作品的热度和曝光度,一些所谓的快手作品刷赞网址代刷服务便应运而生。 这些刷赞网址声称可以快速为用户的快手作品增加大...

了解快手好友代刷网的真相

了解快手好友代刷网的真相

在当今社交媒体蓬勃发展的时代,快手作为一款广受欢迎的短视频平台,拥有着庞大的用户群体,而与之相关的快手好友代刷网也逐渐进入了人们的视野。 快手好友代刷网是一种声称可以帮助用户快速增加快手好友数量...

快手代刷网平台代理的那些事儿

快手代刷网平台代理的那些事儿

在当今的互联网世界中,快手作为一款广受欢迎的短视频平台,拥有着庞大的用户群体和极高的流量,这也使得一些人将目光投向了与之相关的代刷网平台代理业务。 快手代刷网平台代理,就是通过与特定的代刷网站合...