所以我运行代码,它就开始不正常了。我不熟悉pygame。 代码如下:
import pygame pygame.init() # Screen (Pixels by Pixels (X and Y (X = right and left Y = up and down))) screen = pygame.display.set_mode((1000, 1000)) running = True # Title and Icon pygame.display.set_caption("Space Invaders") icon = pygame.image.load('Icon.png') pygame.display.set_icon(icon) # Player Icon/Image playerimg = pygame.image.load('Player.png') playerX = 370 playerY = 480 def player(x, y): # Blit means Draw screen.blit(playerimg, (x, y)) # Game loop (Put all code for pygame in this loop) while running: screen.fill((225, 0, 0)) pygame.display.update() for event in pygame.event.get(): if event.type == pygame.QUIT: running = False # if keystroke is pressed check whether is right or left if event.type == pygame.KEYDOWN: if event.key == pygame.K_LEFT: print("Left arrow is pressed") if event.key == pygame.K_RIGHT: print("Right key has been pressed") if event.key == pygame.K_LEFT or event.key == pygame.K_RIGHT: print("kEYSTROKE RELEASED") # RGB (screen.fill) = red green blue player(playerX, playerY) pygame.display.update()
这张图片并不是我不能发布视频的那个,但它确实是我的代码的作用
问题是由多次调用 pygame.display.update更新(). 在应用程序循环结束时更新显示就足够了。 多次调用pygame.display.update更新()orpygame.display.flip游戏机()原因 忽隐忽现。 删除对的所有呼叫pygame.display.update()从你的代码,但调用一次 在应用程序循环结束时:
pygame.display.update更新()
pygame.display.update更新()
pygame.display.flip游戏机()
pygame.display.update()
while running: screen.fill((225, 0, 0)) # pygame.display.update() <---- DELETE # [...] player(playerX, playerY) pygame.display.update()
如果在之后更新显示屏幕填充(),将显示在短时间内填充了背景色。然后玩家被抽中 (blit)显示时,播放器位于背景上方。
屏幕填充()
blit