pygame游戏开始界面和按钮(设置,开始游戏,退出,对话框)
时间: 2023-08-18 07:05:23 浏览: 718
在这个示例代码中,我们创建了一个游戏开始界面,包括一个标题、三个按钮(设置、开始游戏、退出)和一个对话框。当鼠标点击按钮时,会有相应的操作和对话框弹出。
```python
import pygame
import sys
# 初始化pygame
pygame.init()
# 设置窗口大小
window_size = (800, 600)
screen = pygame.display.set_mode(window_size)
# 设置字体
font = pygame.font.SysFont(None, 48)
# 创建按钮
button_width = 200
button_height = 50
button_margin = 20
button_x = (window_size[0] - button_width) / 2
button_y = window_size[1] / 2 - button_height / 2
settings_button = pygame.Rect(button_x, button_y - button_height - button_margin, button_width, button_height)
start_button = pygame.Rect(button_x, button_y, button_width, button_height)
quit_button = pygame.Rect(button_x, button_y + button_height + button_margin, button_width, button_height)
# 创建标题
title = font.render("My Game", True, (255, 255, 255))
# 创建对话框
dialog_width = 400
dialog_height = 200
dialog_x = (window_size[0] - dialog_width) / 2
dialog_y = (window_size[1] - dialog_height) / 2
dialog_rect = pygame.Rect(dialog_x, dialog_y, dialog_width, dialog_height)
# 创建对话框标题和内容
dialog_title = font.render("Confirm Quit", True, (255, 255, 255))
dialog_text = font.render("Are you sure you want to quit?", True, (255, 255, 255))
# 游戏循环
while True:
# 处理事件
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
elif event.type == pygame.MOUSEBUTTONDOWN:
# 如果点击了设置按钮,执行相应的操作
if settings_button.collidepoint(event.pos):
print("Settings clicked!")
# 如果点击了开始游戏按钮,执行相应的操作
elif start_button.collidepoint(event.pos):
print("Start game!")
# 如果点击了退出按钮,弹出对话框
elif quit_button.collidepoint(event.pos):
pygame.draw.rect(screen, (255, 255, 255), dialog_rect)
screen.blit(dialog_title, (dialog_x + 50, dialog_y + 50))
screen.blit(dialog_text, (dialog_x + 50, dialog_y + 100))
pygame.display.update()
pygame.time.wait(1000)
pygame.quit()
sys.exit()
# 绘制界面
screen.fill((0, 0, 0))
pygame.draw.rect(screen, (255, 255, 255), settings_button)
pygame.draw.rect(screen, (255, 255, 255), start_button)
pygame.draw.rect(screen, (255, 255, 255), quit_button)
screen.blit(title, (300, 200))
# 绘制按钮文字
settings_text = font.render("Settings", True, (0, 0, 0))
start_text = font.render("Start", True, (0, 0, 0))
quit_text = font.render("Quit", True, (0, 0, 0))
screen.blit(settings_text, (settings_button.x + 50, settings_button.y + 10))
screen.blit(start_text, (start_button.x + 70, start_button.y + 10))
screen.blit(quit_text, (quit_button.x + 80, quit_button.y + 10))
# 更新屏幕
pygame.display.update()
```
在这个示例代码中,我们创建了一个窗口,设置了窗口大小,并创建了三个按钮(设置、开始游戏、退出)和一个对话框。在游戏循环中,我们处理了QUIT和MOUSEBUTTONDOWN事件,并在屏幕上绘制了界面。如果点击了按钮,我们执行相应的操作。如果点击了退出按钮,我们弹出对话框并等待1秒钟后退出游戏。