我在游戏中添加标题画面,我想添加"播放"用户点击它时将启动主游戏的按钮。
我已经完成了所有设置,但我不确定让鼠标与播放按钮图像交互的命令。
首先,我在主循环之外加载了播放按钮图像
play = pygame.image.load("play.png").convert()
然后,我在屏幕上显示blit,背后有一个矩形作为标记
play_button = pygame.draw.rect(screen, WHITE, [365, 515, 380, 180])
screen.blit(play, [350, 500])
答案 0 :(得分:2)
PyGame
是低级库 - 它没有GUI小部件,你必须自己做很多事情。
创建类Button
然后多次使用它会更容易。
此处为类Button
的示例。当你点击它改变颜色。
event_handler()
点击按钮点击。
import pygame
# --- class ---
class Button(object):
def __init__(self, position, size):
# create 3 images
self._images = [
pygame.Surface(size),
pygame.Surface(size),
pygame.Surface(size),
]
# fill images with color - red, gree, blue
self._images[0].fill((255,0,0))
self._images[1].fill((0,255,0))
self._images[2].fill((0,0,255))
# get image size and position
self._rect = pygame.Rect(position, size)
# select first image
self._index = 0
def draw(self, screen):
# draw selected image
screen.blit(self._images[self._index], self._rect)
def event_handler(self, event):
# change selected color if rectange clicked
if event.type == pygame.MOUSEBUTTONDOWN: # is some button clicked
if event.button == 1: # is left button clicked
if self._rect.collidepoint(event.pos): # is mouse over button
self._index = (self._index+1) % 3 # change image
# --- main ---
# init
pygame.init()
screen = pygame.display.set_mode((320,110))
# create buttons
button1 = Button((5, 5), (100, 100))
button2 = Button((110, 5), (100, 100))
button3 = Button((215, 5), (100, 100))
# mainloop
running = True
while running:
# --- events ---
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
# --- buttons events ---
button1.event_handler(event)
button2.event_handler(event)
button3.event_handler(event)
# --- draws ---
button1.draw(screen)
button2.draw(screen)
button3.draw(screen)
pygame.display.update()
# --- the end ---
pygame.quit()
https://github.com/furas/my-python-codes/blob/master/pygame/button-click-cycle-color/main_class.py