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

初始化Pygame

admin8个月前 (02-13)抖音自媒体122

游戏效果

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

代码实现

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

相关文章

抖音刷粉丝的真相与影响

抖音刷粉丝的真相与影响

在当今社交媒体盛行的时代,抖音作为一款极具影响力的短视频平台,吸引了无数用户,而在这个过程中,抖音刷粉丝的现象也逐渐引起了人们的关注。 抖音刷粉丝,就是通过一些非正规的手段来增加自己在抖音平台上...

了解聪哥快手代刷网

了解聪哥快手代刷网

在当今的互联网时代,快手等短视频平台备受欢迎,而与之相关的一些服务也应运而生,其中就包括像聪哥快手代刷网这样的平台。 聪哥快手代刷网声称可以为用户提供一系列的快手业务辅助服务,比如增加粉丝数量、...

抖音刷赞平台代理,你需要了解的真相

抖音刷赞平台代理,你需要了解的真相

在当今社交媒体盛行的时代,抖音作为一款极具影响力的短视频平台,吸引了无数用户和商家的目光,而抖音刷赞平台代理这一新兴的业务模式也随之出现,引发了众多人的关注。 抖音刷赞平台代理,就是一些个人或机...

了解抖音刷赞网址的真相

了解抖音刷赞网址的真相

在当今的社交媒体时代,抖音成为了众多人展示自我和获取关注的热门平台,随着抖音的火爆,一些关于抖音刷赞网址的信息也开始在网络上流传。 许多人可能会好奇,这些所谓的抖音刷赞网址究竟是怎么回事呢?这些...

抖音刷点赞刷粉平台在线刷的真相

抖音刷点赞刷粉平台在线刷的真相

在当今的社交媒体时代,抖音无疑是最受欢迎的平台之一,许多用户都渴望在抖音上获得更多的点赞和粉丝,以提高自己的知名度和影响力,一些所谓的抖音刷点赞刷粉平台在线刷服务便应运而生。 这些平台声称能够快...

抖音刷赞技术,真相与影响

抖音刷赞技术,真相与影响

在当今社交媒体盛行的时代,抖音作为一款极具影响力的短视频平台,吸引了无数用户和创作者,许多人渴望在抖音上获得更多的点赞和关注,以提升自己的知名度和影响力,所谓的“抖音刷赞技术”便应运而生,成为了一个备...