| 
 | 
 
20鱼币 
想写一个按z就可以出现图片,按x图片就会消失的程序可是我z都快按废了,它还不给我显示图片,这是为什么呢? 
#导入模块 
- #导入模块
 
 - import pygame
 
 - import sys
 
 - from pygame.locals import *
 
 - import button
 
  
- #初始化
 
 - RED = (255, 0, 0)
 
 - pygame.init()
 
 - size = width, height = pygame.display.list_modes()[0][0], pygame.display.list_modes()[0][1]
 
 - button.init("NewGame.png", "LoadGame.png", "help.png", "ExitGame.png", p=((size[0] / 2, size[1] /8), \
 
 -                                                                           (size[0] / 2, size[1] /4), (size[0] / 2, size[1] /2.6),\
 
 -                                                                           (size[0] / 2, size[1] /1.9)))
 
 - #说明规则及制作变量条件
 
 - WF = pygame.image.load("GZ.png")
 
 - WFa = False
 
 - clock = pygame.time.Clock()
 
 - pygame.display.set_caption("test")
 
  
- #创造窗口
 
 - screen = pygame.display.set_mode(size, FULLSCREEN | HWSURFACE)
 
 - b1_qosition = (size[0] / 2, size[1] /8)
 
 - b2_qosition = (size[0] / 2, size[1] /4)
 
 - b3_qosition = (size[0] / 2, size[1] /2.6)
 
 - b4_qosition = (size[0] / 2, size[1] /1.9)
 
 - while True:
 
 -     for event in pygame.event.get():
 
 -         if event.type == QUIT:
 
 -             sys.exit()
 
 -         if event.type == KEYDOWN:
 
 -             if event.key == K_z:
 
 -                 if button.c == 2:
 
 -                        WFa = True
 
 -             if WFa == True and event.key == K_z:
 
 -                 WFa = False
 
 -                 if button.c == 3:
 
 -                     sys.exit()
 
  
-     button.draw(screen, (255, 0, 0))
 
 -     if WFa == True:
 
 -          screen.blit(WF, size[0]/2, size[1]/2)
 
 -     pygame.display.flip()
 
 -     clock.tick(200)
 
 
  复制代码 
在按键事件处理中,你先检测是否按下了'Z'键,让`WFa`变为`True`,但紧接着又将其设为`False`。这会导致图像根本来不及显示。正确的逻辑应该是当按下'X'键时才将`WFa`变为`False`。 
while True: 
    for event in pygame.event.get(): 
        if event.type == QUIT: 
            sys.exit() 
        if event.type == KEYDOWN: 
            if event.key == K_z: 
                if button.c == 2: 
                       WFa = True 
            if WFa == True and event.key == K_z: 
                WFa = False 
                if button.c == 3: 
                    sys.exit() 
 
 
 
 |   
 
 
最佳答案
查看完整内容 
在按键事件处理中,你先检测是否按下了'Z'键,让`WFa`变为`True`,但紧接着又将其设为`False`。这会导致图像根本来不及显示。正确的逻辑应该是当按下'X'键时才将`WFa`变为`False`。
while True:
    for event in pygame.event.get():
        if event.type == QUIT:
            sys.exit()
        if event.type == KEYDOWN:
            if event.key == K_z:
                if button.c == 2:
                    ... 
 
 
 
 
 
 
 |