用python写一个简单好玩的小游戏,要有界面
时间: 2024-03-06 14:49:17 浏览: 169
使用Python写一个小游戏
好的,我可以为你提供一个基于 Python Pygame 模块的简单游戏示例,名为“打飞碟游戏”:
```
import pygame
import random
# 初始化 Pygame
pygame.init()
# 设置窗口大小和标题
WIDTH = 600
HEIGHT = 400
screen = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("打飞碟游戏")
# 定义颜色
BLACK = (0, 0, 0)
WHITE = (255, 255, 255)
RED = (255, 0, 0)
# 加载图片
BACKGROUND_IMAGE = pygame.image.load("background.jpg").convert()
UFO_IMAGE = pygame.image.load("ufo.png").convert_alpha()
# 设置游戏参数
FPS = 60
UFO_SPEED = 5
UFO_SIZE = 50
SCORE = 0
FONT = pygame.font.SysFont("Arial", 24)
# 定义飞碟类
class UFO:
def __init__(self):
self.x = random.randint(0, WIDTH-UFO_SIZE)
self.y = -UFO_SIZE
self.speed = UFO_SPEED
def update(self):
self.y += self.speed
def draw(self, surface):
surface.blit(UFO_IMAGE, (self.x, self.y))
# 初始化飞碟列表
ufos = []
# 设置时钟
clock = pygame.time.Clock()
# 游戏循环
running = True
while running:
# 处理事件
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
elif event.type == pygame.MOUSEBUTTONDOWN:
# 检查点击是否命中飞碟
for ufo in ufos:
if ufo.x <= event.pos[0] <= ufo.x+UFO_SIZE and ufo.y <= event.pos[1] <= ufo.y+UFO_SIZE:
SCORE += 10
ufos.remove(ufo)
# 更新游戏状态
for ufo in ufos:
ufo.update()
if ufo.y > HEIGHT:
ufos.remove(ufo)
# 生成新飞碟
if random.randint(1, 60) == 1:
ufos.append(UFO())
# 绘制游戏画面
screen.blit(BACKGROUND_IMAGE, (0, 0))
for ufo in ufos:
ufo.draw(screen)
score_text = FONT.render(f"得分:{SCORE}", True, RED)
screen.blit(score_text, (10, 10))
# 刷新画面
pygame.display.flip()
# 控制帧率
clock.tick(FPS)
# 退出 Pygame
pygame.quit()
```
这个游戏创建一个 Pygame 窗口,背景是一张图片,玩家需要点击飞碟来得分。每隔一段时间会有新的飞碟出现,玩家需要在飞碟离开屏幕前尽可能地击中它们。当玩家关闭窗口时,游戏结束,显示得分。你可以根据自己的需求进行修改和扩展,例如增加难度、音效等等。
阅读全文