import pygame import sys class Card(pygame.sprite.Sprite): def __init__(self, image1, image2, pos): super().__init__() self.image1 = image1 self.image2 = image2 self.image = self.image1 self.rect = self.image.get_rect() self.rect.center = pos self.is_flipped = False def flip(self): self.is_flipped = not self.is_flipped if self.is_flipped: self.image = self.image2 else: self.image = self.image1 def update(self): pass pygame.init() screen = pygame.display.set_mode((800, 600)) pygame.display.set_caption("Card Game") images = [] for i in range(1, 11): image1 = pygame.image.load(f"card{i}.png") image2 = pygame.image.load(f"card{i}_back.png") images.append((image1, image2)) cards = pygame.sprite.Group() for i in range(10): card = Card(images[i][0], images[i][1], ((i % 5) * 150 + 75, (i // 5) * 150 + 75)) cards.add(card) clock = pygame.time.Clock() while True: for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() sys.exit() elif event.type == pygame.MOUSEBUTTONDOWN: for card in cards: if card.rect.collidepoint(event.pos): card.flip() screen.fill((255, 255, 255)) cards.update() cards.draw(screen) pygame.display.update() clock.tick(60)
时间: 2024-02-14 16:04:45 浏览: 158
pygame入门学习(一)
5星 · 资源好评率100%
这是一个使用 Pygame 库制作的简单的翻牌游戏示例代码。程序首先导入 Pygame 和 sys 模块,然后定义了一个 Card 类,表示一张卡牌,其中包括两个图片和位置信息等属性。Card 类还定义了 flip() 方法用于翻牌,并在 update() 方法中保留了空实现。
接下来程序初始化 Pygame,创建一个窗口,加载 10 张卡牌图片,并将它们添加到一个 Pygame 精灵组中。程序进入主循环,监听 Pygame 事件,如果点击了鼠标,则检查是否点击了卡牌,如果点击了,则进行翻牌操作。程序在循环中更新精灵组并在屏幕上绘制,最后使用 Pygame.display.update() 更新屏幕显示,并使用 Pygame.time.Clock() 控制帧率。
阅读全文