2 回答
TA贡献1874条经验 获得超12个赞
您button = 0
在开始时定义,但永远不要在主循环中更改其值。在你的drawIntro
函数中,你检查if button > 0
或if button == 1
很明显你永远不会执行任何这些if
语句。
您需要通过调用来捕捉鼠标按钮pygame.mouse.get_pressed()
并弄清楚如何正确切换到下一页。
顺便说一句,您也有if button == 1
3 次,我猜这不是您想要的,因为if
语句会在编写时立即执行,因此您的第 3 页将立即显示。您需要一些计数器来跟踪下次按下鼠标按钮时需要显示的页面。
TA贡献1757条经验 获得超7个赞
button当用户按下鼠标按钮时,您需要增加计数器。
该drawIntro函数不应在每个pygame.MOUSEMOTION事件的事件循环中调用一次,而应在主while循环中调用。此外,更改MOUSEMOTION为每次单击MOUSEBUTTONDOWN增加button一次。
drawIntro函数中的条件不正确。
import pygame
pygame.init()
SIZE = (1000, 700)
screen = pygame.display.set_mode(SIZE)
clock = pygame.time.Clock()
button = 0
fontIntro = pygame.font.SysFont("Times New Roman",30)
def drawIntro(screen):
#start
if button == 0: # == 0
screen.fill((0, 0, 0))
text = fontIntro.render("Sigle click to start", 1, (255,255,255))
screen.blit(text, (300, 300, 500, 500))
elif button == 1: #page1
screen.fill((0, 0, 0))
text = fontIntro.render("page 1", True, (255, 255, 255))
screen.blit(text, (300,220,500,200))
elif button == 2: #page2
screen.fill((0, 0, 0))
text = fontIntro.render("page 2", True, (255, 255, 255))
screen.blit(text, (300,220,500,200))
elif button == 3: #page3
screen.fill((0, 0, 0))
text = fontIntro.render("page3", True, (255, 255, 255))
screen.blit(text, (200,190,500,200))
running = True
while running:
for evnt in pygame.event.get():
if evnt.type == pygame.QUIT:
running = False
if evnt.type == pygame.MOUSEBUTTONDOWN: # Once per click.
button += 1
drawIntro(screen)
pygame.display.flip()
pygame.quit()
添加回答
举报