问题描述
我的代码未显示任何错误,但现在我的飞鸟cosde应该每1.2秒打印一次字管,但这不代表我不知道如何解决它并检查了我代码中的每个单词,甚至还写了有人可以请我帮忙吗 代码:
import pygame,sys
def draw_floor():
screen.blit(floor_surface,(floor_animation,400))
screen.blit(floor_surface,(floor_animation + 275,400))
pygame.init()
screen = pygame.display.set_mode((275,512))
clock = pygame.time.Clock()
gravity = 0.25
bird_movement = 0
bg_surface = pygame.image.load('C:/Users/cuerv/Downloads/flappy-bird-assets-master/flappy-bird-assets-master/sprites/background-day.png').convert()
floor_surface = pygame.image.load('C:/Users/cuerv/Downloads/flappy-bird-assets-master/flappy-bird-assets-master/sprites/base.png').convert()
floor_animation = 0
bird_surface = pygame.image.load('C:/Users/cuerv/Downloads/flappy-bird-assets-master/flappy-bird-assets-master/sprites/bluebird-midflap.png').convert()
bird_rect = bird_surface.get_rect(center = (100,256))
pipe_surface = pygame.image.load('C:/Users/cuerv/Downloads/flappy-bird-assets-master/flappy-bird-assets-master/sprites/pipe-green.png').convert()
pipe_list = []
SPAWNPIPE = pygame.USEREVENT
pygame.time.set_timer(SPAWNPIPE,1200)
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_SPACE:
bird_movement = 0
bird_movement -= 7
if event.type == SPAWNPIPE:
print("pipe")
screen.blit(bg_surface,(0,0))
bird_movement += gravity
bird_rect.centery += bird_movement
screen.blit(bird_surface,(bird_rect))
floor_animation -= 1
draw_floor()
if floor_animation <= -275: #if floor = if the left surface is too to the left we are going to do soamething
floor_animation = 0
screen.blit(floor_surface,400))
pygame.display.update()
clock.tick(120)
解决方法
发生这种情况是因为您对SPAWNPIPE
事件的检查在KEYDOWN
事件的检查之内。这可以通过以下方法解决:
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_SPACE:
bird_movement = 0
bird_movement -= 7
if event.type == SPAWNPIPE:
print("pipe")