pygame封装按钮案例
时间: 2024-08-30 15:03:39 浏览: 136
Pygame是一个流行的Python库,用于制作2D游戏。在Pygame中,你可以通过封装一个简单的Button类来创建交互式的按钮控件。以下是一个基本的封装按钮案例:
```python
import pygame
from pygame.locals import *
class Button:
def __init__(self, screen, x, y, width, height, text, color=(255, 255, 255), bg_color=(0, 0, 0)):
self.screen = screen
self.x = x
self.y = y
self.width = width
self.height = height
self.text = text
self.color = color
self.bg_color = bg_color
self.rect = pygame.Rect(x, y, width, height)
def draw(self):
pygame.draw.rect(self.screen, self.bg_color, self.rect)
font = pygame.font.SysFont(None, 24) # 选择字体大小
text_surface = font.render(self.text, True, self.color)
text_rect = text_surface.get_rect(center=self.rect.center)
self.screen.blit(text_surface, text_rect)
def is_clicked(self, pos):
return self.rect.collidepoint(pos)
# 使用示例
pygame.init()
screen = pygame.display.set_mode((800, 600))
button = Button(screen, 200, 200, 100, 50, "Click me!")
running = True
while running:
for event in pygame.event.get():
if event.type == QUIT or (event.type == MOUSEBUTTONDOWN and button.is_clicked(pygame.mouse.get_pos())):
running = False
screen.fill((0, 0, 0)) # 清屏
button.draw()
pygame.display.flip()
pygame.quit()
```
在这个例子中,我们首先定义了一个`Button`类,它包含了按钮的位置、尺寸、文本颜色、背景色等属性,并有`draw`方法来绘制按钮以及`is_clicked`方法判断是否被点击。然后在主循环中,通过监听鼠标事件并调用`is_clicked`方法检查是否点击了按钮。
阅读全文